home *** CD-ROM | disk | FTP | other *** search
/ EuroCD 3 / EuroCD 3.iso / Communication / Citadel_BBS / Docs / oper3.man < prev    next >
Text File  |  1998-06-24  |  160KB  |  3,770 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                         C I T A D E L  -  8 6
  16.  
  17.                                 V3.39
  18.  
  19.                           OPERATIONS MANUAL
  20.  
  21.                         Copyright 1989 - 1991
  22.  
  23.                              by Hue, Jr.
  24.  
  25.                        C-86 Test System Sysop
  26.  
  27.                                91Jul26
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.                       TABLE OF CONTENTS
  72.  
  73.      I.  Introduction   . . . . . . . . . . . . . . . . . . 1
  74.      II. Help Files . . . . . . . . . . . . . . . . . . . . 1
  75.           II.1. Location  . . . . . . . . . . . . . . . . . 1
  76.           II.2. File Types  . . . . . . . . . . . . . . . . 1
  77.           II.3. Optional Customization  . . . . . . . . . . 1
  78.           II.4. Customizable Structure  . . . . . . . . . . 2
  79.           II.5. Help File Variables . . . . . . . . . . . . 3
  80.           II.6. Required Customization  . . . . . . . . . . 4
  81.           II.7. Optional Help Files . . . . . . . . . . . . 4
  82.           II.8. Adding Help Files . . . . . . . . . . . . . 5
  83.           II.9. New Users . . . . . . . . . . . . . . . . . 5
  84.           II.10. Delivered  . . . . . . . . . . . . . . . . 6
  85.      III. Sysop Privileged Functions  . . . . . . . . . . . 7
  86.           III.1. Introduction . . . . . . . . . . . . . . . 7
  87.           III.2. Access . . . . . . . . . . . . . . . . . . 8
  88.           III.3. Access Restrictions  . . . . . . . . . . . 8
  89.           III.4. Sysop Capabilities . . . . . . . . . . . . 8
  90.           III.4.a <A>bort . . . . . . . . . . . . . . . . . 9
  91.           III.4.b <B>aud Rate Selection . . . . . . . . . . 9
  92.           III.4.c <C>hat Enable/Disable . . . . . . . . . . 9
  93.           III.4.d <D>ebug Switch  . . . . . . . . . . . . . 9
  94.           III.4.e <E>cho To Screen  . . . . . . . . . . . . 9
  95.           III.4.f <F>ile Grab . . . . . . . . . . . . . . . 9
  96.           III.4.g <I>nformation . . . . . . . . . . . . . . 9
  97.           III.4.h <M>odem Mode  . . . . . . . . . . . . . .10
  98.           III.4.i <N>etworking Commands . . . . . . . . . .11
  99.           III.4.j <O>ther Commands  . . . . . . . . . . . .11
  100.           III.4.k <R>einitialize Modem  . . . . . . . . . .11
  101.           III.4.l <S>et Date  . . . . . . . . . . . . . . .11
  102.           III.4.m e<X>it To MS-DOS  . . . . . . . . . . . .11
  103.           III.5. Undocumented Sysop Menu Commands . . . . .11
  104.           III.6 User Administration . . . . . . . . . . . .11
  105.           III.6.a <A>dd User  . . . . . . . . . . . . . . .12
  106.           III.6.b <D>oor Privileges . . . . . . . . . . . .12
  107.           III.6.c <E>ndless User (permanent account). . . .12
  108.           III.6.d <K>ill Account  . . . . . . . . . . . . .12
  109.           III.6.e <N>etwork Privileges  . . . . . . . . . .12
  110.           III.6.f <P>rivileged Switch . . . . . . . . . . .12
  111.           III.6.g <T>wit Status . . . . . . . . . . . . . .12
  112.           III.6.h e<X>it  . . . . . . . . . . . . . . . . .12
  113.      IV. User Levels & Aide stuff . . . . . . . . . . . . .13
  114.           IV.1. Introto User Levels . . . . . . . . . . . .13
  115.           IV.2. Normal Users  . . . . . . . . . . . . . . .13
  116.           IV.3. Aides . . . . . . . . . . . . . . . . . . .13
  117.              IV.3.a Message Manipulations . . . . . . . . .13
  118.                   IV.3.a.1 Message Deletion . . . . . . . .13
  119.                   IV.3.a.2 Moving Messages  . . . . . . . .13
  120.                   IV.3.a.3 Copying Messages . . . . . . . .14
  121.                   IV.3.a.4 Conversions  . . . . . . . . . .14
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.              IV.3.b General Aide Commands . . . . . . . . .14
  138.                   IV.3.b.1 Room Elimination . . . . . . . .14
  139.                   IV.3.b.2 Empty Room Deletion  . . . . . .14
  140.                   IV.3.b.3 Room Editing . . . . . . . . . .14
  141.                   IV.3.b.4 Message Insertion  . . . . . . .15
  142.              IV.3.d Floors  . . . . . . . . . . . . . . . .15
  143.                   IV.3.d.1 Floor Creation . . . . . . . . .15
  144.                   IV.3.d.2 Room Moving  . . . . . . . . . .15
  145.                   IV.3.d.3 Floor renaming . . . . . . . . .15
  146.                   IV.3.d.4 Floor Killing  . . . . . . . . .15
  147.              IV.3.e Aide Command Summary  . . . . . . . . .15
  148.              IV.3.f Possible extra privileges . . . . . . .15
  149.          IV.4 Sysops  . . . . . . . . . . . . . . . . . . .15
  150.              IV.4.a Message Journaling  . . . . . . . . . .15
  151.              IV.4.b Directory Journaling  . . . . . . . . .15
  152.              IV.4.c Copying Files   . . . . . . . . . . . .16
  153.      V.  Rooms  . . . . . . . . . . . . . . . . . . . . . .17
  154.           V.I Room Attributes   . . . . . . . . . . . . . .17
  155.           V.I.1. Room Archival   . . . . . . . . . . . . . 17
  156.           V.I.2. Backbones   . . . . . . . . . . . . . . . 18
  157.           V.I.3. Directory Status  . . . . . . . . . . . . 18
  158.           V.I.4. Information Editing . . . . . . . . . . . 18
  159.           V.I.5. Innominate Status   . . . . . . . . . . . 18
  160.           V.I.6. Lure Users  . . . . . . . . . . . . . . . 18
  161.           V.I.7. Moderator   . . . . . . . . . . . . . . . 19
  162.           V.I.8. Name Change   . . . . . . . . . . . . . . 19
  163.           V.I.9. Only Invitational   . . . . . . . . . . . 19
  164.           V.I.10. Privacy Status . . . . . . . . . . . . . 19
  165.           V.I.11. Temporary Status  . . . . . . . . . . . .19
  166.           V.I.12. Shared Status   . . . . . . . . . . . . .20
  167.           V.I.13. Upload/Download Status  . . . . . . . . .20
  168.           V.I.14. Withdraw Invitations  . . . . . . . . . .20
  169.           V.I.15. Network Downloadable  . . . . . . . . . .20
  170.           V.II. Other Room Editing Commands . . . . . . . .20
  171.           V.III. Three Exceptions . . . . . . . . . . . . .20
  172.      VI. Files - Upload/Download Capabilities . . . . . . .20
  173.           VI.1. Origin  . . . . . . . . . . . . . . . . . .20
  174.           VI.2. Creation  . . . . . . . . . . . . . . . . .21
  175.           VI.3. User Commands   . . . . . . . . . . . . . .21
  176.           VI.3.i. Content Listing . . . . . . . . . . . . .21
  177.           VI.3.ii. File Transfers . . . . . . . . . . . . .23
  178.           VI.3.ii.a Upload Protocols  . . . . . . . . . . .23
  179.           VI.3.ii.b Download Protocols  . . . . . . . . . .24
  180.      VII.<O>ther Commands . . . . . . . . . . . . . . . . .24
  181.           VII.1. General Purpose  . . . . . . . . . . . . .24
  182.           VII.2. Other Commands   . . . . . . . . . . . . .25
  183.           VII.2.a. Deletion . . . . . . . . . . . . . . . .25
  184.           VII.2.b. Outside Commands . . . . . . . . . . . .25
  185.           VII.2.b.i. Restrictions . . . . . . . . . . . . .25
  186.      VIII.Miscellaneous . . . . . . . . . . . . . . . . . .26
  187.           VIII.1. Wha...?   . . . . . . . . . . . . . . . .26
  188.           VIII.2. Chatty Questions  . . . . . . . . . . . .26
  189.           VIII.3. Chat Capture   . .  . . . . . . . . . . .26
  190.           VIII.4. File Transfers while in Chat Mode . . . .27
  191.           VIII.5. ESCaping  . . . . . . . . . . . . . . . .27
  192.           VIII.6  Typing at Keyboard W/User is in Control .28
  193.              VIII.6.a Sysop Autodial  . . . . . . . . . . .28
  194.              VIII.6.b Chat Mode . . . . . . . . . . . . . .28
  195.              VIII.6.c Echo Mode . . . . . . . . . . . . . .28
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.           VIII.7. Denizens Of The Status Bar  . . . . . . .28
  204.           VIII.8. Modem Disabling . . . . . . . . . . . . .29
  205.           VIII.9. BADWORDS.SYS  . . . . . . . . . . . . . .29
  206.           VIII.10. Massive Privileges . . . . . . . . . . .30
  207.      IX.  SEA's ARC files . . . . . . . . . . . . . . . . .31
  208.           IX.1 DeArcing   . . . . . . . . . . . . . . . . .31
  209.           IX.2 ARC Integrity Checks   . . . . . . . . . . .31
  210.      X.   PKWARE's ZIP Files  . . . . . . . . . . . . . . .32
  211.           X.1 DeZIP   . . . . . . . . . . . . . . . . . . .32
  212.           X.2 ZIP Integrity Checks  . . . . . . . . . . . .32
  213.      XI.  ZOO Files . . . . . . . . . . . . . . . . . . . .32
  214.           XI.1 DeZOO  . . . . . . . . . . . . . . . . . . .32
  215.           XI.2 ZOO Integrity Checks . . . . . . . . . . . .32
  216.      XII. LHARC Files . . . . . . . . . . . . . . . . . . .32
  217.           XII.1 DeLZH . . . . . . . . . . . . . . . . . . .32
  218.           XII.2 LZH Integrity Checks  . . . . . . . . . . .32
  219.      XIII. GIF Files  . . . . . . . . . . . . . . . . . . .32
  220.      XIV. Sysop's Editor  . . . . . . . . . . . . . . . . .32
  221.           XIV.1 Sysop Editor Notes  . . . . . . . . . . . .34
  222.      XV. Door Support . . . . . . . . . . . . . . . . . . .35
  223.           XV.1. Administration  . . . . . . . . . . . . . .35
  224.           XV.1.a. User Administration . . . . . . . . . . .35
  225.           XV.1.b. Door Administration . . . . . . . . . . .35
  226.           XV.2 BAT File Support . . . . . . . . . . . . . .37
  227.           XV.3 Compatability  . . . . . . . . . . . . . . .38
  228.           XV.4 Automatic Doors  . . . . . . . . . . . . . .38
  229.           XV.5 New User Doors . . . . . . . . . . . . . . .39
  230.      XVI. Citadel-86 As A Door  . . . . . . . . . . . . . .39
  231.      XVII. External Protocol Drivers  . . . . . . . . . . .40
  232.           XVII.1 Adding drivers . . . . . . . . . . . . . .40
  233.           XVII.2 Number of drivers  . . . . . . . . . . . .41
  234.           XVII.3 USR HST 9600 notes . . . . . . . . . . . .42
  235.      XVIII. Questions & Answers . . . . . . . . . . . . . .42
  236.      XIX. #event Examples!  . . . . . . . . . . . . . . . .43
  237.           XIX.1 Automating Backups  . . . . . . . . . . . .43
  238.           XIX.2 Scheduled Network Sessions  . . . . . . . .45
  239.           XIX.3 Anytime Network Sessions  . . . . . . . . .46
  240.           XIX.4 Download Time Limits  . . . . . . . . . . .47
  241.           XIX.5 Door Time Limits  . . . . . . . . . . . . .48
  242.           XIX.6 Automatic Doors   . . . . . . . . . . . . .48
  243.      XX. External Message Editors   . . . . . . . . . . . .49
  244.      Appendix A: File Formats   . . . . . . . . . . . . . .50
  245.      Appendix B: Contributors . . . . . . . . . . . . . . .52
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.      I. INTRODUCTION
  270.         Hello, this is the Operations Manual for Citadel-86.  In this manual
  271.      we will attempt to explain the daily machinations of Citadel-86 that you,
  272.      the sysop, will encounter.  We've tried to cover as much as we can,
  273.      particularly concentrating on areas in which we've encountered numerous
  274.      questions, as well as other areas where we've noted sysops are not aware
  275.      of useful options.
  276.  
  277.         There is something of a fuzzy line between this manual, OPER3.MAN, and
  278.      the Citadel-86 Installation Manual, INSTALL3.MAN.  Some folk may think
  279.      that some subjects belong in the Installation Manual rather than here,
  280.      and vice-versa.  If you don't find something in here, it wouldn't hurt
  281.      to peruse the Installation Manual.
  282.  
  283.         Finally, and for the record, Citadel-86 is a direct port of Cynbe ru
  284.      Taren's CP/M Citadel 2.10 code, as obtained from the C Users Group (CUG).
  285.      Without Cynbe's genius, Citadel-86 would not exist.
  286.  
  287.      II. Help Files
  288.  
  289.      II.1. Location
  290.         The supporting help files of Citadel-86, which are simple text files,
  291.      should be located in the #HELPAREA drive and directory.  As explained in
  292.      the Installation Manual, you should copy these files to that directory
  293.      before operating your system, unless you do not plan to provide help to
  294.      the users of the system.
  295.  
  296.      II.2. File types
  297.         There are three types of Help files, identifiable by their extensions,
  298.      plus some miscellaneous types.
  299.  
  300.         .BLB: These files contain miscellaneous messages and warnings for use
  301.                in certain set locations of Citadel-86.
  302.  
  303.         .MNU: These files contain menus that are normally printed out when the
  304.               user touches '?' while using Citadel-86.  Usually, these are just
  305.               lists of options.
  306.  
  307.         .HLP: These are general help files that are accessible through the
  308.               .Help <filename> command.  Generally, these files contain terse
  309.               instructions on the use of the system, including references to
  310.               other files that may be of help to the user.
  311.  
  312.      II.3. Optional Customization
  313.         The Help files as delivered are of a generic nature, and any of them
  314.      may be modified using a text editor at the Sysop's option.  The .BLB
  315.      files are generally English descriptions of operations, and can be
  316.      modified for greater readability/useability with little danger of any
  317.      problems.
  318.  
  319.         On the other hand, the .MNU files should not be modified impulsively,
  320.      since they consist mostly of menu lists.
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.                                   -1-
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.         The .HLP files are the best candidates for customization, since they
  336.      are English descriptions, and, for the most part, are not "hard-coded"
  337.      into Citadel-86; rather, they are usually referenced by the user after 
  338.      s/he finds a reference to them.  See section II.3 below, too.
  339.  
  340.         All help files are formatted just like messages when they are
  341.      displayed to the user; therefore, you should be sure to follow the normal
  342.      Citadel formatting rules when rewriting Help files, except that you
  343.      needn't place a lone space on a blank line to enforce that blank line (a
  344.      difficult thing to do with many editors).
  345.  
  346.      II.4. Customizable structure
  347.         Beginning with Version 3.10 of Citadel-86, the help file system has
  348.      some capabilities not previously found in Citadel.  Originally designed
  349.      and implemented by Paul Gauthier of Nova Scotia, Canada, the help system
  350.      of Citadel can now be menu driven at the option of the System Operator.
  351.  
  352.         Access to the help system has not changed; both <H>elp and <.H>elp are
  353.      used to access help files.
  354.  
  355.         In appearance, a help file using the enhanced capabilities will display
  356.      in this general format:
  357.  
  358.         <text text text ...
  359.                    ... end text>
  360.  
  361.       [a] <help file 1> <description for help file 1.>
  362.       [b] <help file 2> <description for help file 2.>
  363.          ...
  364.       [x] <help file n> <description for help file n.>
  365.  
  366.       Press RETURN to exit Help, or select an option [a-x]:
  367.  
  368.         Essentially, when a user selects a help file to read, Citadel-86 will
  369.      display the text of the help file for the user, and then a list of help
  370.      files that the user may select from.  Both the description, as before,
  371.      and the list of options is completely under the System Operator's control.
  372.      The ambitious System Operator with an ambitious, coherent view of what a
  373.      Citadel Help System should be can use this to construct what he wants.
  374.  
  375.         So how do you make the list of options appear at the end of your
  376.      favorite help file?  By specifying the names at the end of the help file
  377.      in question, prefixing each name with a "%" and suffixing each file name
  378.      with its description.  For the above generic example, you would have
  379.  
  380.        <text text text ...
  381.                       ... end text>
  382.  
  383.        %<help file 1> <description for help file 1.>
  384.        %<help file 2> <description for help file 2.>
  385.          ...
  386.        %<help file n> <description for help file n.>
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.                                   -2-
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.      and a concrete example would be
  402.  
  403.         Hi, I'm a meaningless help file, and here are my options:
  404.  
  405.       %SNEEZING How to sneeze while using Citadel.
  406.       %EATING How to eat at Utica College.
  407.       %SLEEPING How to sleep while baking in the heat of Minnesota.
  408.  
  409.         Finally, this Help System applies only to the .HLP files (explained in
  410.      II.2), not to any other types of help.
  411.  
  412.      II.5 Help File Variables
  413.         The Hot Help system can display the values of certain CTDLCNFG.SYS
  414.      parameters at the option of the sysop.  The procedure resembles the manner
  415.      in which help files may be 'linked' together to make menus: a special
  416.      character followed by a string of characters naming the requested
  417.      variable.  Assuming the request is valid, the request is replaced by the
  418.      actual value of the installation.
  419.  
  420.         The special character is the up arrow, '^'.
  421.  
  422.         Not all of the CTDLCNFG.SYS parameters are available for display.
  423.      In fact, only a few are available.  This is the currently supported list:
  424.  
  425.        Variable Name  |  CTDLCNFG.SYS counterpart (or whatever)
  426.        -----------------------------------------------------------
  427.         ^nodetitle    |  #nodeTitle
  428.        -----------------------------------------------------------
  429.         ^nodeid       |  #nodeId
  430.        -----------------------------------------------------------
  431.         ^nodename     |  #nodeName
  432.        -----------------------------------------------------------
  433.         ^nodedomain   |  #nodeDomain
  434.        -----------------------------------------------------------
  435.         ^baseroom     |  #baseRoom
  436.        -----------------------------------------------------------
  437.         ^mainfloor    |  #MainFloor
  438.        -----------------------------------------------------------
  439.         ^sysopname    |  #sysopName
  440.        -----------------------------------------------------------
  441.         ^variantname  |  The software name (i.e., "Citadel-86")
  442.        -----------------------------------------------------------
  443.         ^sysopname    |  System Operator's account (if specified)
  444.        -----------------------------------------------------------
  445.         ^doorlist     |  List of available doors.
  446.        -----------------------------------------------------------
  447.         ^ulprotocols  |  List of available upload protocols
  448.        -----------------------------------------------------------
  449.         ^dlprotocols  |  List of available download protocols
  450.        -----------------------------------------------------------
  451.  
  452.         The last two are constructed from your CTDLPROT.SYS file described
  453.      in the section concerning external protocol drivers in this manual.
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.                                   -3-
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.      EXAMPLE
  468.         Suppose you wished to display the name of the sysop somewhere in your
  469.      help system to the users.  You would then have something like this in the
  470.      help file(s):
  471.      
  472.         " ... And, of course, the sysop bringing this wealth of information to
  473.      you today is ^sysopname.  And now on to the next contestant on the
  474.      ^nodename BBS!"
  475.  
  476.      II.6. Required Customization
  477.         There are four files that you should customize for your installation
  478.      as soon as you feel you are prepared to.  They are
  479.  
  480.         HOURS.HLP: This file should contain the hours that your system is
  481.      available to users.
  482.  
  483.         POLICY.HLP: This file should contain your general policy statement
  484.      regarding your system and its purpose.  The rules of your system could
  485.      also possibly appear here.
  486.  
  487.         NOCHAT.BLB: When you have Chat mode turned off on your system, this
  488.      file is printed to the users when they attempt to use the Chat command.
  489.  
  490.         UNLOG.BLB: This file must be customized by Sysops running closed 
  491.      systems only.  When a user without a password attempts to log into
  492.      such a system, the system will print this file to the would-be user
  493.      if it exists.  If the file doesn't exist, then a hard-coded message
  494.      instructing the user to proceed to Mail> and leave a message for
  495.      Sysop will appear.
  496.  
  497.      II.7. Optional Help Files
  498.         There are 190 (!) Help files that do not need to be present
  499.      during Citadel-86's operation, but if they are will cause Citadel-86 to
  500.      alter its behavior slightly when a user is on the system.
  501.  
  502.         The first three files are BANNER.PRE, NOTICE.PRE, and LONOTICE.PRE.
  503.      These files, if present in your #HELPAREA directory, will be printed
  504.      when carrier is detected and baud detected (BANNER.PRE) and before
  505.      BANNER.BLB (see below), after a successful login and before NOTICE.BLB
  506.      (NOTICE.PRE) (see below), and on logout before carrier is lost, before
  507.      LONOTICE.BLB is printed (LONOTICE.PRE) (see below).  These files allow
  508.      the sysop to have a standard beginning of BANNER/NOTICE/LONOTICE.
  509.  
  510.         The next file is BANNER.BLB.  If this file is present in the #HELPAREA
  511.      directory when a user gains carrier, this file will be sent to the user.
  512.      This allows large beginning banners to be used. If the BANNER.BLB file is
  513.      not present, then the #nodeTitle parameter of CTDLCNFG.SYS will be sent
  514.      to the user in its place.  However, BANNER.BLB can be overridden even
  515.      if present; see below.
  516.  
  517.         The next file is NOTICE.BLB.  If this file is present in #HELPAREA,
  518.      Citadel-86 will send it to the user upon a successful login.  However,
  519.      NOTICE.BLB can be overridden even if present; see below.
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.                                   -4-
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.         The next file is LONOTICE.BLB.  If this file is present in #HELPAREA,
  534.      Citadel-86 will send it to the user when the user executes any of the
  535.      Terminate commands before logging them out.  However, LONOTICE.BLB can be
  536.      overridden even if present; see below.
  537.  
  538.         Then there is NEWUSER.BLB.  If this file is present, it will be
  539.      displayed to a prospective new user before* they are allowed to proceed
  540.      into initial account creation.
  541.  
  542.         The next sixty (!) files, unlike the balance of the help files, do not
  543.      reside in #HELPAREA, but instead in the directory BANNERS, and they are
  544.      named BANNER.0, BANNER.1, ... BANNER.59.  If these files are present, when
  545.      Citadel-86 recognizes the baud rate of the caller it will select one of
  546.      these banners, depending on the second of the minute, and display it to
  547.      the user.
  548.  
  549.         The next sixty files, like BANNER.0, BANNER.1, etc., also reside
  550.      in the BANNERS directory.  These are named LONOTICE.0, LONOTICE.1, etc. If
  551.      these files are available when a user logs off, one will be selected
  552.      randomly (by reading the system clock) and presented to the user before
  553.      carrier is dropped.  If they are not available, then LONOTICE.BLB in
  554.      the #HELPAREA directory will be presented.
  555.  
  556.         The next sixty files are also analogous to the BANNER.0, etc., files,
  557.      but they are named NOTICE.0, NOTICE.1, etc., and will take the place
  558.      of NOTICE.BLB if they are present in BANNERS.
  559.  
  560.         The last three files are BANNER.SFX, NOTICE.SFX, and LONOTICE.SFX.
  561.      These files, if present, are printed after BANNER.BLB (or BANNER.xx),
  562.      NOTICE.BLB (or NOTICE.xx), and LONOTICE.BLB (or LONOTICE.xx),
  563.      respectively.  Used in combination with the BANNERS directory, this lets
  564.      you put a standard suffix on your variable carrier banners, login
  565.      notices, and logout notices without forcing you to edit all of those
  566.      variable things.
  567.  
  568.      II.8. Adding Help Files
  569.         Through the use of the .Help command, users may access any file that
  570.      you place in the #HELPAREA that has a .HLP extension.  Therefore, if you
  571.      wish to extensively customize and extend the Citadel-86 Help system, you
  572.      should encounter few problems.
  573.  
  574.         When a user enters ".Help ?", however, the file HELPOPT.HLP will be
  575.      printed to them.  Therefore, you should take care to keep that file up
  576.      to date if you begin adding Help files.
  577.  
  578.      II.9. New Users
  579.         You may configure Citadel-86 to automatically generate and deliver a
  580.      message in Mail> to a user on his or her initial login via two files
  581.      placed in the #HELPAREA directory.  When the user has finished the initial
  582.      login process, he or she will discover the Mail> room has a message
  583.      in it, and Goto will take them to Mail.  The message will have as the
  584.      author either Citadel, if there is no sysop designated in your
  585.      installation, or the name of the sysop (#sysopName in CtdlCnfg.Sys).
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.                                   -5-
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.         The two files are used for two different situations: new users who
  600.      designate themselves as novices, and new users who claim to be experts.
  601.      The names of the files are NOVMAIL.BLB for the Mail to the novices, and
  602.      EXPMAIL.BLB for the Mail to the experts.
  603.  
  604.         You may write these files just like any other Help file (except for
  605.      using special directives); Citadel-86 will format them appropriately when
  606.      delivering them to the new user.
  607.  
  608.         This option is also in effect if you are adding new users via the
  609.      Add User command of the User Admin Menu (Section III.6).
  610.  
  611.      II.10. Delivered
  612.         These are the Help files currently contained in RUNTIME.ARC, which
  613.      you should have.  While we always try to keep these files up to
  614.      date, we cannot guarantee that they are in keeping with the release
  615.      version of Citadel-86 that is in RUNTIME.ARC.
  616.  
  617.      .BLB files
  618.      BANNER.BLB   | Placeholder, printed to user on carrier detect.
  619.      BIONOV.BLB   | Printed to novice users entering a biography.
  620.      ENTRY.BLB    | Printed to novice users entering a message.
  621.      LONOTICE.BLB | Placeholder, printed to user on logout.
  622.      NEWROOM.BLB  | Printed to novice users creating a new room.
  623.      NOCHAT.BLB   | Printed to users using the Chat command when inactive.
  624.      NOTICE.BLB   | Placeholder, printed to user on login.
  625.      PASSWORD.BLB | Printed to novice users during new login process.
  626.      READDATE.BLB | Printed on entry of ".Read New ?" or Old or Reverse or ...
  627.      UNLOG.BLB    | Placeholder, for closed systems only (see X.4).
  628.      WCDOWN.BLB   | Printed to novice users using .RX command.
  629.      WCUPLOAD.BLB | Printed to novice users using .EF or .EXF or .EF command
  630.      WXDOWN.BLB   | Printed to novice users using .RW command.
  631.      WXUP.BLB     | Printed to novice users using .EWF command.
  632.      YMDOWN.BLB   | Printed to novice users using .RY command.
  633.      YMODEMUP.BLB | Printed to novice users using .EYF command.
  634.      YMUPLOAD.BLB | Printed to indicate the Ymodem upload is in SINGLE mode.
  635.  
  636.      .MNU files
  637.      AIDE.MNU     | Printed when an Aide enters .Aide ?.
  638.      AIDEFLR.MNU  | Printed when an Aide enters ;Aide ?.
  639.      CONFG.MNU    | Printed when a user enters .Enter Configuration ?.
  640.      CTDLOPT.MNU  | Printed when a Sysop enters ? at the Privileged fn: prompt.
  641.      EDIT.MNU     | Printed when a user enters ? at the entry cmd: prompt.
  642.      ENTOPT.MNU   | Printed when a user enters .Enter ?.
  643.      FLOOR.MNU    | Printed when a user enters ;?.
  644.      INFOEDIT.MNU | Printed when a user enters ? at the Info Edit prompt.
  645.      KNOWN.MNU    | List of .Known Rooms options.
  646.      MAINOPT.MNU  | Printed when a user enters ? or .? at a room prompt.
  647.      NETEDIT.MNU  | Printed when the Sysop enters ? at the Net Edit: prompt.
  648.      NETOPT.MNU   | Printed when the Sysop enters ? at the Net Cmd: prompt.
  649.      READOPT.MNU  | Printed when a user enters .Read ?.
  650.      ROOMA.MNU    | Printed when a remote Aide enters ? at the room edit:
  651.                   | prompt.
  652.      ROOMS.MNU    | Printed when a Sysop enters ? at the room edit: prompt.
  653.      SYSOPT.MNU   | Printed when a Sysop enters ? at the Other commands:
  654.                   | prompt.
  655.      USEROPT.MNU  | Printed when a Sysop enters ? at the User Admin: prompt.
  656.  
  657.  
  658.                                   -6-
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.      .HLP files
  666.      ADVANCED.HLP | List of advanced user Help Files and some text.
  667.      AIDE.HLP     | Aide help file.
  668.      AIDEFLR.HLP  | Aide help file for floor commands.
  669.      BIO.HLP      | Help on Biographies.
  670.      BOARD.HLP    | A menu of board-specific help files.
  671.      COMMANDS.HLP | List of help files for novices.
  672.      COMPCOMM.HLP | Help on Compressed files (ARC, ZIP, etc).
  673.      DOMAINS.HLP  | Help on Citadel-86 domains.
  674.      DOORS.HLP    | Help on Citadel-86 doors.
  675.      DOT.HLP      | Help on the dot ('.') commands.
  676.      DOWNLOAD.HLP | Help on downloading from Citadel-86.
  677.      EDIT.HLP     | Help with editing messages on Citadel-86.
  678.      ENTER.HLP    | Help for the Enter commands.
  679.      FILES.HLP    | Upload/Download help.
  680.      FLOORS.HLP   | Floor help for the normal user.
  681.      FLOW.HLP     | How to handle message flow.
  682.      FORGET.HLP   | Help on the ZForget room command.
  683.      FORWARD.HLP  | Mail forwarding (network).
  684.      GENERAL.HLP  | General help listing.
  685.      GOTO.HLP     | Help on the Goto command.
  686.      HELD.HLP     | Help on Holding messages.
  687.      HELPOPT.HLP  | A directory of Help files.
  688.      HIDDEN.HLP   | Help on Hidden rooms.
  689.      HOURS.HLP    | Place holder, should contain your hours.
  690.      LOGINOUT.HLP | Help on Logging in and out of the system.
  691.      MAIL.HLP     | Help on Citadel-86's Mail system.
  692.      MAINHELP.HLP | Printed when user enters the Help command.
  693.      NET-MAIL.HLP | Help on C86Net mail.
  694.      NETROOMS.HLP | Help on shared rooms.
  695.      NOVFLOW.HLP  | Help on message flow for novices.
  696.      NOVICE.HLP   | General novice help.
  697.      POLICY.HLP   | Place holder, should contain your policy.
  698.      PROTOCOL.HLP | Help on the available protocols.
  699.      READ.HLP     | Help on using the Read commands.
  700.      RECONFIG.HLP | Information on reconfiguration.
  701.      SINGLE.HLP   | Help on single-stroke commands.
  702.      SKIP.HLP     | Help on using the Skip command.
  703.      SUMMARY.HLP  | Complete summary of the "." and ";" commands.
  704.      TOC.HLP      | Help on directory listings.
  705.      UPLOAD.HLP   | Help on uploads.
  706.      WHATCOMP.HLP | What is a compressed file, anyways?
  707.  
  708.      III. SYSOP PRIVILEGED FUNCTIONS
  709.  
  710.      III.1. Introduction
  711.         In any system, there must be someone in charge if the system is to be
  712.      successful, and that person must have special abilities.  In Citadel-86,
  713.      anyone who has access to the system console may execute many of the Sysop
  714.      capabilities, and the root of all these evils (for necessary as Sysop
  715.      powers are, they often lead to evil) is the Privileged Fn: menu (aka
  716.      the Sysop Menu).
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.                                   -7-
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.      III.2. Access
  732.         The Sysop Menu is accessed by typing a ^L (Control-L) at any room
  733.      prompt.  When accessing them from the console, all of the Sysop menus
  734.      appear as a collection of options which can be selected either by their
  735.      first letter (mnemonic) or by moving the double arrow (using the arrow
  736.      keys) to the desired option and touching the return key ("ENTER").
  737.  
  738.     Remote sysops can get the list of options available at a Sysop Menu
  739.      prompt by touching the '?'.
  740.  
  741.      III.3. Access Restrictions
  742.         Access to the Sysop Menu is dependent on the location of the user at
  743.      the time of attempted use.
  744.  
  745.         If the user is at the System Console, then the user does not even have
  746.      to log in to use the Privileged Functions, once the System is in Console
  747.      mode.  While this may seem somewhat precarious to the prospective Sysop,
  748.      keep in mind that most installations do not normally run in public
  749.      locations.
  750.  
  751.         If the user is a remote user, then access is very restricted.  First,
  752.      the system must be using the #sysPassword feature (see Section II.5.C of
  753.      INSTALL3.MAN) of Citadel-86.  Second, the user in question must be an
  754.      Aide of the system.  Finally, the user must possess the password
  755.      specified in the #sysPassword file, because the system will query the
  756.      Aide for the password when the ^L is pressed.
  757.  
  758.      III.4. Sysop Capabilities
  759.         Due to the prejudices of the implementor, Citadel-86's Sysop
  760.      capabilities are neither variegated, overly powerful, or pretty; the
  761.      users of the system come before the Sysop.
  762.  
  763.         Be that as it may, the Sysop Menu is exactly what it sounds like: a
  764.      menu of choices which the Sysop may select from.  After each command
  765.      is executed, the Sysop is queried for another.
  766.  
  767.         This is the current official Sysop Menu.
  768.  
  769.      (CTDLOPT.MNU)
  770.  
  771.        <A>bort to main menu
  772.        <B>aud rate selection
  773.        <C>hat enable/suppress switch
  774.        <D>ebug switch
  775.        <E>cho to screen switch
  776.        <F>ile grab
  777.        <I>nformation
  778.        <M>odem mode
  779.        <N>etworking commands
  780.        <O>ther commands
  781.        <R>einitialize modem
  782.        <S>et date
  783.        <U>ser Administration
  784.       e<X>it to MS-DOS
  785.  
  786.         And here it is in detail.
  787.  
  788.  
  789.  
  790.                                   -8-
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.      III.4.a <A>bort
  798.         This command exits from the Sysop Menu, leaving you at the current
  799.      room prompt in CONSOLE mode.  This command is equivalent to the
  800.      <M>odem mode command (III.4.i) if the user is a remote caller.
  801.  
  802.      III.4.b <B>aud rate selection
  803.         This antiquated command allows you to set the baud rate of the serial
  804.      port to the value that you indicate.  This command has some occasional
  805.      usefulness in certain debug situations, so it still exists, but the
  806.      typical System Operator should never have a use for this option.
  807.  
  808.      III.4.c <C>hat enable/disable
  809.         This command acts as a toggle for Chat enabled/disabled.  When Chat is
  810.      enabled, the System will display a 'C' somewhere on your Status bar, and
  811.      users using the <C>hat command will be able to page you.  When the toggle
  812.      is off, users using <C>hat will be greeted by your NOCHAT.BLB file (see
  813.      Section I, HELP FILES).  Aides using the .Aide Chat command can, however,
  814.      override this toggle.  A Sysop who really, truly wants privacy can use
  815.      the +nochat option on the command line to shut Aides out (see Section
  816.      II.9.a of INSTALL3.MAN).
  817.  
  818.      III.4.d <D>ebug switch
  819.         This toggle command alternately turns debug code off and on.  Under
  820.      normal circumstances, this toggle should always be off.  There is no
  821.      telling what it will do from version to version, and in general will be of
  822.      little, if any, help in isolating problems with your installation; it is
  823.      more of a programming aide.
  824.  
  825.      III.4.e <E>cho to screen
  826.         This toggle controls whether any output goes to the screen when the
  827.      system is in MODEM mode.  This option is, of course, inoperative while
  828.      the system is in CONSOLE mode.
  829.  
  830.      III.4.f <F>ile grab
  831.         This command allows the Sysop to "grab" text files that are anywhere
  832.      on his disk system into his Held Message buffer.  In essence, this gives
  833.      the Sysop an equivalent ability to a normal user's composing a message
  834.      offline and then uploading it.  The Sysop may compose a message using
  835.      his or her favorite editor, and then <F>ile grab it into the Held
  836.      Message Buffer.  However, there are more flexible and convenient ways of
  837.      doing this; see Section XII, Sysop Editor.
  838.  
  839.         To be more precise, the <F>ile grab command appends the text file
  840.      (or as much as it can digest) to the Held Message Buffer, thus allowing
  841.      construction of messages from several sources.  Furthermore, none of the
  842.      other contents of the Held Message are disturbed.  Therefore, you can
  843.      begin writing a message using Citadel-86, hold the message, <F>ile grab
  844.      something, and continue onwards.
  845.  
  846.      III.4.g <I>nformation
  847.         This command provides information on the current version of Citadel-86
  848.      that you are running. The information is provided in the following format:
  849.  
  850.              Citadel-86 VM.mm
  851.              Net Version N.n
  852.              Commands version O.ooo
  853.              Ctdlcnfg.sys version Q
  854.  
  855.  
  856.                                   -9-
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.         "Citadel-86 VM.mm" is the same version that is printed on Carrier Detect
  864.      to users.  The "M" digit indicates the Major Change that Citadel-86 is at
  865.      ("1" was simply a version that worked under MS-DOS, "2" was the addition
  866.      of C86Net, "3" the addition of Floors).  The "mm" digits indicates changes
  867.      made to Citadel-86 that provides normal users with substantial new
  868.      capabilities.  Typically, "mm" does not change for new Sysop capabilities,
  869.      cosmetic changes, or the like; it's really nothing more than a gross
  870.      indicator of the version.
  871.  
  872.         "Net Version N.n" indicates the network capability of Citadel-86.  "N"
  873.      indicates any Major changes to the network (the first version of C86Net
  874.      did not have a number [boy, was it bad!], the second version was "0", and
  875.      the current is "1").  Due to the expandable nature of C86Net, "N" will
  876.      probably never change again.  "n" indicates Facility additions.  The
  877.      association of "n" to Facility addition is documented in the INCREM.* files
  878.      (which will be described shortly), and detailed in NETWORK3.MAN.
  879.  
  880.         "Commands version O.ooo" tells the real story behind what version you
  881.      are running.  "O" is the Enhancement version, and is incremented whenever
  882.      Citadel-86 is enhanced with a new command or appearance which does not
  883.      require a change to the "Citadel-86 VM.mm" version.  "ooo" is the Fix
  884.      version, and is incremented whenever a bug is fixed or another internal
  885.      change takes place.  "O.ooo" values are, again, documented in the INCREM.*
  886.      files.
  887.  
  888.         "Ctdlcnfg.sys version Q" tells what version of CTDLCNFG.SYS the system
  889.      is at.  Typically, this value is only incremented for Major Releases.
  890.  
  891.         So what are these INCREM.* files?  These files, available on Test
  892.      System (ask the Sysop for access to them), and possibly other systems,
  893.      document the changes made to Citadel-86, albeit very tersely.  The format
  894.      of the documentation is:
  895.  
  896.      <version change>        <date>          <description>
  897.  
  898.         <version change> usually refers to the Commands version, although it
  899.      can refer to any of the version information in the Sysop's <I>nformation
  900.      command.  <date> is when the version change was written/released.
  901.      Description is the terse description of what occurred to force the change
  902.      in version; when it is "???", it means that the Sysop was programming in
  903.      his sleep again and forgot what he did (here we take a deep breath ...).  
  904.      Occasionally you will be referred to other files documenting changes in
  905.      detail.
  906.  
  907.         The INCREM.* files constitute the most reliable information on
  908.      upgrades to Citadel-86, short of asking Test System's Sysop himself.
  909.      Since he is a very grumpy person (born that way, you see), and is not
  910.      adverse to biting off the heads of anyone who comes near, it is better
  911.      to peruse these files once you have access to them.
  912.  
  913.      III.4.h <M>odem mode
  914.         This command returns the system to MODEM mode.  If you have logged in
  915.      at the CONSOLE, it is NOT a good idea to use this command until you have 
  916.      logged out, and since a normal Termination at the console will cause
  917.      the system to go into Modem mode, this is only useful when not logged
  918.      in.
  919.  
  920.  
  921.  
  922.                                   -10-
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.      III.4.i <N>etworking commands
  930.         This option takes you to a submenu that is only available on systems
  931.      that are using the Network facilities (see II.5.d of INSTALL3.MAN and all
  932.      of NETWORK3.MAN).  Since NETWORK3.MAN should explain this menu in detail
  933.      (although perhaps not with the level of organization desired), we shan't
  934.      go any farther here.
  935.  
  936.      III.4.j <O>ther commands
  937.         This option will deliver you to another submenu that is covered in
  938.      Section VII, OTHER COMMANDS MENU.
  939.  
  940.      III.4.k <R>einitialize modem
  941.         This option allows you to reinitialize the modem.
  942.  
  943.      III.4.l <S>et date
  944.         This function lets you set the date of the system.  This is currently
  945.      disabled.
  946.  
  947.      III.4.m <U>ser Administration
  948.         This option leads to another menu system, which is concerned with User
  949.      Administration duties.  See Section III.6.
  950.  
  951.      III.4.n e<X>it to MS-DOS
  952.         Finally, this command should be used to take Citadel-86 down
  953.      gracefully. The current user is logged out if present, and the system 
  954.      will then attempt to deactivate itself.
  955.  
  956.      III.5 Undocumented Sysop Menu Commands
  957.         There are always one or more undocumented commands floating around in
  958.      the Sysop Menu.  These are, without exception, debug commands for use by
  959.      the programmer(s) of Citadel-86, and are not guaranteed to exist from one
  960.      version to another of Citadel-86.  To expand even more upon this
  961.      frightening thought, the safety and integrity of your systems are not
  962.      guaranteed if you start screwing around with these options.
  963.  
  964.         So don't.
  965.  
  966.      III.6 User Administration
  967.         Starting with Citadel-86 V3.14, those Sysop level commands dealing
  968.      with various user privileges have been moved to their own menu, due to
  969.      overcrowding of the main Sysop Menu.  These options, as noted above, are
  970.      reached from the Main Sysop Menu via the <U>ser Administration command.
  971.  
  972.         (USEROPT.MNU)
  973.  
  974.            <A>dd new user
  975.            <D>oor privileges switch
  976.            <E>ndless User (permanent account)
  977.            <F>ile privileges
  978.            <K>ill account
  979.            <N>et privileges switch
  980.            <P>rivilege switch (aide set/clear)
  981.            <T>wit switch
  982.           e<X>it to main sysop menu
  983.  
  984.  
  985.  
  986.  
  987.  
  988.                                   -11-
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.      III.6.a <A>dd user
  996.         This option lets you add new users to your system without logging out 
  997.      of the system yourself.  This is particularly useful for closed systems, 
  998.      especially when the sysop is performing maintenance from remote and is 
  999.      utilizing the remote sysop functionality.  The process is as if a new 
  1000.      user were actually logging in, but after the normal questions are asked, 
  1001.      the sysop is asked if the new user should be given door and, if 
  1002.      appropriate, network privileges.
  1003.  
  1004.      III.6.b <D>oor Privileges
  1005.         Each account on your system may be set to have, or not have, Door
  1006.      privileges.  A Door is a program, typically run from a BBS, which allows
  1007.      the user to do something.  Citadel-86 Doors capability is detailed in
  1008.      Section XIII of this manual.  A user must have Door Privileges, assigned
  1009.      using this option or via the Configuration file default (CTDLCNFG.SYS),
  1010.      in order to use Doors on your system.
  1011.  
  1012.      III.6.c <E>ndless User (permanent account)
  1013.         You may set any account on your system to be permanent.  This means
  1014.      that it will not be automatically reused when new users log in and old
  1015.      users don't log in for a long period of time (normally, old accounts,
  1016.      if not used for a long time, will be recycled).  The only problem is
  1017.      if you should set every account to being permanent, then old accounts,
  1018.      even though permanent, will be recycled.
  1019.  
  1020.         An important implication is if you set a significant amount of accounts
  1021.      to be permanent, the scroll time on the other (temporary) accounts will
  1022.      become noticeably faster.
  1023.  
  1024.      III.6.d <F>ile Privileges
  1025.         File privileges (permission to download files) may be set using this
  1026.      switch.
  1027.  
  1028.      III.6.e <K>ill Account
  1029.         The time-honored function, Kill account, is accessed by typing K at
  1030.      the Sysop Menu.  Please don't kill the account of the person currently
  1031.      logged in.  Besides being rude, it won't work.
  1032.  
  1033.      III.6.f <N>etwork Privileges
  1034.         If you are running a network Citadel-86, you may use this option or
  1035.      the option in the Network Menu (see NETWORK3.MAN) to assign Network
  1036.      privileges to your users.  See NETWORK3.MAN for full details.
  1037.  
  1038.      III.6.g <P>rivileged switch
  1039.         The creation of those drudges, Aides, takes place through this
  1040.      command.  Anyone who is forced to become an Aide should also be forced
  1041.      to read AIDE.HLP (conveniently written in pidgin Swahili), which details
  1042.      most of the Aide capabilities.  As noted, Aides given the system password
  1043.      will gain access to this menu.
  1044.  
  1045.      III.6.h <T>wit Status
  1046.         First, a caveat: this was added reluctantly and may go away some day.
  1047.      Anyone who has been given Twit status no longer may save messages -- but
  1048.      they won't know it.
  1049.  
  1050.      III.6.i e<X>it
  1051.         This option returns you to the Main Sysop Menu.
  1052.  
  1053.  
  1054.                                   -12-
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.      IV. USER LEVELS
  1062.  
  1063.      IV.1 Intro to User Levels
  1064.         Citadel-86 (and related systems) are often popular with users because
  1065.      they do not have the superfluous user levels that many other types of BBS
  1066.      software have.  We believe that this lets the user feel a little more free
  1067.      with the system; the lack of direct control makes them willing to partici-
  1068.      pate in the system earlier.
  1069.  
  1070.         However, this does not mean that Citadel-86 completely lacks in user
  1071.      levels.  Citadel-86 uses the same 3-level hierarchy that came with the
  1072.      original CP/M Citadel.  At the bottom is the normal users, with the usual
  1073.      privileges of reading and writing.  Next comes the Aides, who are users
  1074.      with certain caretaker powers.  Finally, the Sysops and remote sysops,
  1075.      who can do a little more.
  1076.  
  1077.      IV.2 Normal Users
  1078.         Normal users are created, as you might guess, by simply logging in.
  1079.      They may read, write, and upload to all rooms they have access to.
  1080.  
  1081.      IV.3 Aides
  1082.         Aides are created using the <P>rivilege switch on the User
  1083.      Administration Menu (see Section III.6.g).  Aides are users who act as
  1084.      caretakers for the Sysop.  Their abilities and methods are summarized in
  1085.      AIDE.HLP and AIDEFLR.HLP as well as here.  They have access to the
  1086.      private Aide> room.
  1087.  
  1088.      IV.3.a Message Manipulations
  1089.     This section covers the capabilities of aides in relationship to
  1090.      message management.
  1091.  
  1092.      IV.3.a.1 Message Deletion
  1093.         Aides may delete any message in the system with the exception of
  1094.      messages in Mail>.  Messages which are deleted will be moved to the Aide
  1095.      room, and will be preceded by a message from Citadel noting the name of
  1096.      the Aide who performed the deletion.
  1097.  
  1098.         Messages in Mail> which are deleted by Aides (Aides only have access
  1099.      to their own Mail> room) remain in Mail> and show up in the Aide> room.
  1100.  
  1101.         A message is deleted by <P>ausing the target message during printout,
  1102.      and restarting message output by pressing 'D'.  The message will repeat,
  1103.      and then the system will ask if you wish to Delete the message, Move the
  1104.      message, make the message into a network message (if this is a shared
  1105.      room and the message is not a network message), Copy the message to
  1106.      another room, or Abort the operation.  Selecting D will cause the message
  1107.      to be deleted.
  1108.  
  1109.      IV.3.a.2 Moving Messages
  1110.         Aides may move any message from its current room to another room.  The
  1111.      moved message will also appear in the Aide> room, along with a message
  1112.      regarding who moved the message.  Messages in Mail> may not be moved
  1113.      successfully.
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.                                   -13-
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.         A message is moved just like a message is deleted, by selecting 'M'
  1128.      when the system asks if you wish to Delete, Move, or Abort the operation.
  1129.      The Aide is then asked which room to move the message to.  If one or more
  1130.      messages have been moved since the system was brought up, an empty
  1131.      Carriage Return will put the message in the last room a message was moved
  1132.      to.  The Aide does not need to type the entire name of the room to move
  1133.      the message to; a partial name is sufficient, so long as it is unique
  1134.      within the system.
  1135.  
  1136.         Moving a message to a net room from a non-net room will cause the system
  1137.      to ask the Aide if the message should be netted.  Moving a message to an
  1138.      archived room does not cause that message to be archived.  Moving a
  1139.      message to an anonymous room does not cause that message to become
  1140.      anonymous.
  1141.  
  1142.      IV.3.a.3 Copying Messages
  1143.     A message may also be Copied using the same command sequence as above.
  1144.      A copied message is created by simply allowing both rooms to reference
  1145.      the message, unless the target room is a shared room while the originating
  1146.      room is not, and the message is to be netted.
  1147.  
  1148.      IV.3.a.4 Making a message into a Network message.
  1149.         A non-shared message may be made into a shared (network) message by
  1150.      selecting the 'N' option after using the <P>ause-D sequence.  When the
  1151.      Aide selects this, the system reads the message in and then saves the
  1152.      copy as a shared message.  The original is silently deleted.  This
  1153.      process, while eating a little extra space, will ensure the message is
  1154.      netted to all sharing systems.
  1155.  
  1156.      IV.3.b General Aide Commands
  1157.     This section covers various general Aide commands.  All of these
  1158.      commands are exercised via .Aide <command>.
  1159.  
  1160.      IV.3.b.1 Room Elimination
  1161.         Aides may kill any room in the system, with the exception of the
  1162.      Mail>, Aide>, and #baseRoom rooms.  A message recording this fact will be
  1163.      placed in the Aide> room.
  1164.  
  1165.         A room is killed by an Aide by being present in that room and execut-
  1166.      ing the .Aide Kill command.
  1167.  
  1168.      IV.3.b.2 Empty Room Deletion
  1169.         Aides may execute a command that deletes empty, temporary rooms from
  1170.      the system.  A message will be left in the Aide> room listing the rooms
  1171.      deleted by the command.  (All directory and shared rooms are permanent
  1172.      rooms and therefore not subject to the effects of this command.)
  1173.  
  1174.         The .Aide Delete command is used for this purpose.
  1175.  
  1176.      IV.3.b.3 Room Editing
  1177.         Aides may edit the rooms of a system, with the exception of the Mail>,
  1178.      Aide>, and #baseRoom rooms.  See Section V. ROOMS for more on these
  1179.      actions.  To edit a room, either <A>ide or .Aide Edit room will allow you
  1180.      to edit the room.  However, Aides may not set the full range of attributes
  1181.      associated with a room; Section V should cover this in full.
  1182.  
  1183.  
  1184.  
  1185.  
  1186.                                   -14-
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.      IV.3.b.4 Message Insertion
  1194.         An Aide may insert the last message deleted into a room.  The .Aide
  1195.      Insert message command allows this.
  1196.  
  1197.      IV.3.d Floors
  1198.     This section covers Aide capabilities as related to floors.  All of
  1199.      these commands are accessed through the command sequence ;Aide <command>.
  1200.  
  1201.      IV.3.d.1 Floor Creation
  1202.         Aides may create floors at will.  New floors are placed in the first
  1203.      empty floor slot, and there is no arbitrary limit on the number of floors
  1204.      in a system.  Floor names may only be 19 characters in length, and each
  1205.      must be unique within the system of floor names.  Floors may not be
  1206.      created while in the Aide>, Mail>, or #baseRoom rooms, because the room
  1207.      that a floor is created in will automatically become a room on that floor.
  1208.  
  1209.         ;Aide Create-floor creates a floor.
  1210.  
  1211.      IV.3.d.2 Room Moving
  1212.         Aides may move rooms from one floor to another, with the exception of
  1213.      the Aide>, Mail>, and #baseRoom rooms.  The Aide should be in a room that
  1214.      is on the floor that the rooms should be moved to.  Once the command is
  1215.      completed, a message will be placed in the Aide> room detailing what rooms
  1216.      have been moved where.
  1217.  
  1218.         The command is ;Aide Move-rooms.  The system will prompt for the names
  1219.      of rooms to be moved to the current floor.  Room names must be specified
  1220.      in full.
  1221.  
  1222.      IV.3.d.3 Floor renaming
  1223.         The ;Aide Rename-floor allows an Aide to rename a Floor.  The name must
  1224.      be unique amongst the floors.
  1225.  
  1226.      IV.3.d.4 Floor Killing
  1227.         Aides may delete Floors.  When this command is executed, the current
  1228.      floor is assumed to be the target; the #baseFloor floor may not be killed.
  1229.      The Aide will be asked if the rooms on the floor should be killed outright,
  1230.      or placed on the #baseFloor.
  1231.  
  1232.         The command is ;Aide Kill-floor.
  1233.  
  1234.      IV.3.e Aide Command Summary
  1235.  
  1236.       .Aide Delete empty rooms
  1237.       .Aide Edit current room
  1238.       .Aide Insert pulled message
  1239.       .Aide Kill current room
  1240.       ;Aide Create floor
  1241.       ;Aide Delete empty floors
  1242.       ;Aide Kill floor
  1243.       ;Aide Move rooms to floor
  1244.       ;Aide Rename floor
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.                                   -15-
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.      IV.3.f Possible extra privileges
  1260.         Depending on the configuration of the system, Aides may have additional
  1261.      privileges that the users do not.
  1262.  
  1263.         First, Aides may be the only users able to create new rooms.
  1264.  
  1265.         Second, Aides may be the only users able to use the Mail> room.
  1266.  
  1267.      IV.4 Sysops
  1268.         There are potentially two different Sysops.
  1269.  
  1270.         First, and always, there is the person at the system console.  Certain
  1271.      Sysop abilities can be executed without being logged in, notably the
  1272.      Sysop Menu functions (Section III: SYSOP PRIVILEGED FUNCTIONS); the rest,
  1273.      what few there are, require that the Sysop be logged in.
  1274.  
  1275.         Second, when the #sysPassword parameter is in use, an Aide in
  1276.      possession of the system password may use it to become a remote Sysop.
  1277.      A Remote Sysop has most of the capabilities of an Aide at the System
  1278.      Console, including access to the entire Sysop Menu, and complete control
  1279.      of room editing (see Section V: ROOMS).
  1280.  
  1281.         The only other options available to a Sysop that are not available to
  1282.      Aides, outside of the Sysop Menu, follow.
  1283.  
  1284.      IV.4.a Message Journaling
  1285.         Sysops may select individual messages to be placed in normal MS-DOS
  1286.      text files for future reference; this is called Journaling. This command
  1287.      is executed by <P>ausing the target message during output, and restarting
  1288.      it with a 'J'.  The system will then ask for the name of a file to place
  1289.      the text of the message in.  If the Journaling command has been used
  1290.      before, then an empty Carriage Return will cause the message to be
  1291.      appended to the last file specified.
  1292.  
  1293.      IV.4.b Directory Journaling
  1294.         Sysops may Journal the directories of directory rooms.  The process is
  1295.      the same as Message Journaling.
  1296.                                         
  1297.      IV.4.c Copying Files
  1298.     Sysops may copy files into directory rooms from the room prompt.  The
  1299.      Sysop should be in the directory room where the file is desired to reside.
  1300.      The command sequence is .Aide Addfile.  The sysop will be prompted for a
  1301.      full pathname.  If the file is found, it will be copied into the directory
  1302.      associated with this room, and then the sysop will be prompted for a
  1303.      description of the file.  If no description is entered then no changes
  1304.      will be made to FILEDIR.TXT (which makes this convenient for updating
  1305.      files).  If a description is entered, FILEDIR.TXT is updated and a message
  1306.      will be left in the room in just the same style as a normal file upload
  1307.      would leave a message.
  1308.  
  1309.     Since DOS's COPY command is used to execute this command, very large
  1310.      systems and systems with a limited amount of RAM may have difficulty
  1311.      running this command.
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.                                   -16-
  1319.  
  1320.  
  1321.  
  1322.  
  1323.      V. Rooms
  1324.  
  1325.      V.I Room Attributes
  1326.         Rooms are the basic foundation of the Citadel-86 system, acting as the
  1327.      main organizer and container of the messages of the system; the collection
  1328.      of rooms of a Citadel-86 essentially constitutes the character of the
  1329.      system.
  1330.  
  1331.         Rooms on a Citadel-86 can have a number of attributes associated with
  1332.      them, each working independently, and most do not interfere with each
  1333.      other's usefulness.  With the exception of the first three rooms of a
  1334.      system, there should not be any restriction on what rooms can have what
  1335.      attributes.  So let's discuss what a room can do, besides contain messages.
  1336.  
  1337.         In order to set any of these attributes, the room must be edited by
  1338.      an Aide.  If the Aide is accessing the system remotely and has not used
  1339.      the Remote Sysop Password, then the Aide's powers are restricted, while
  1340.      an Aide at the system console or a Remote Sysop's powers are not
  1341.      restricted.  In the following discussion, the option letter used to
  1342.      activate or deactivate an attribute is given along with the explanation
  1343.      of the feature.
  1344.  
  1345.      V.I.1 Room Archival
  1346.         <A>rchive status, a Sysop-only option, allows the Sysop to save all the
  1347.      messages that are entered into a room, whether locally or via the network,
  1348.      to a normal MS-DOS text file (formatted for a 80 column user).  When this
  1349.      option is activated, the Sysop is asked for a filename that will contain
  1350.      the saved messages.  This file may reside anywhere on the system.  An
  1351.      initial archive of the room will take place, and thereafter all messages
  1352.      entered into this room will be saved to the file upon entry.  This includes
  1353.      messages received over C86Net.
  1354.  
  1355.         Messages that are deleted from the room will NOT be deleted from the
  1356.      archive file, and, similarly, messages that were entered in another room
  1357.      and subsequently moved to the archive room will not be saved to the
  1358.      archive file, except on initial archive.
  1359.  
  1360.      V.I.1.a File Limits
  1361.     During the sequence of making a room into an Archived room the sysop
  1362.      will be asked if they want to set a size limit on the resulting archive
  1363.      file.  If you answer with a non-zero answer, then the system will attempt
  1364.      to enforce a limit on how large the archive file will grow, using your
  1365.      answer and multiplying it by 1000.  When the resultant file exceeds the
  1366.      limit specified, Citadel-86 will change the file's name to
  1367.      "filename.<digits>" and then continue archiving to the original file name.
  1368.      "digits" is selected by starting with 0 and incrementing until a filename
  1369.      is found that does not exist yet on disk.  In this manner a sequence of
  1370.      files of roughly the same size will come into existence, mirroring the
  1371.      room but in manageable chunks.
  1372.  
  1373.     Since DOS cannot handle files with more than one period in their
  1374.      name, sysops should select names without suffixes when using this feature.
  1375.  
  1376.     This limit does not apply during initial room archival.
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.                                   -17-
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.      V.I.1.b File Names
  1392.     Room archive filenames can be slightly more abstract than has been
  1393.      indicated thus far.  Filenames may carry embedded indicators of the
  1394.      current month and year which will change as the months and years pass.
  1395.      In other words, you can use a couple of macros in the name of room
  1396.      archive files if you wish.  The supported macros are currently
  1397.  
  1398.          %y : This is the last two digits of the current year
  1399.          %m : This is the first three letters of the current month
  1400.  
  1401.     So, for instance, you could have a room archive name of
  1402.      "poetry\poems%y.%m".  Messages left in the room during March of 1990
  1403.      would then be written to the file "poetry\poems90.mar", while those left
  1404.      in August of 1991 would be written to the file "poetry\poems91.aug".
  1405.      This ability should make management of room archive files a bit easier to
  1406.      deal with.
  1407.  
  1408.      V.I.2 Backbones
  1409.         Please see NETWORK3.MAN for the use of the <B>ackbone status option.
  1410.      This is a Sysop only option.
  1411.  
  1412.      V.I.3 Directory status
  1413.         Please see Section VI.y for details on the upload/download capabilities
  1414.      of Citadel-86 that are made available through the <D>irectory status
  1415.      option of room editing, a Sysop only option.
  1416.  
  1417.      V.I.4 Information Editing
  1418.         The <E>dit Information option allows any aide to edit the information
  1419.      associated with this room.  If Information already exists for this room,
  1420.      the aide is asked if he or she wishes to edit the already existing
  1421.      Information.  In any case, the Aide is placed in the Citadel-86 message
  1422.      editor and allowed to create new Information for the current room.  If
  1423.      the Aide should <A>bort the entry, then any prior Information on the room
  1424.      is not disturbed; a <S>ave will replace prior Information with the
  1425.      Current Information, including updating the CTDLINFO.SYS file resident
  1426.      in your #ROOMAREA directory.
  1427.  
  1428.      V.I.5 Innominate status
  1429.         The <I>nnominate option allows any aide to designate a room to be an
  1430.      Anonymous room.  A room which has been designated Innominate behaves
  1431.      differently from a normal room in the following ways:
  1432.  
  1433.        o All messages entered in it locally are saved with the author's name
  1434.      being "****".  Editing a room back to normal ("authored") status does NOT
  1435.      restore those messages' authors.
  1436.  
  1437.        o Echo to screen is suppressed during message entry in Innominate rooms.
  1438.  
  1439.      V.I.6 Lure users
  1440.         Any aide may use the <L>ure users option to, in effect, invite any
  1441.      user into any room except the Aide room.  The user(s) specified are given
  1442.      access to the room being edited.  If they already had access, no change
  1443.      is made to their status.
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.                                   -18-
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.      V.I.7 Moderator
  1458.         Any room may have one moderator attached to it.  A moderator is
  1459.      effectively an Aide for that single room, able to edit the room and delete
  1460.      messages.  The user specified does not need any special privileges.  Any
  1461.      Aide may change the moderator setting for a room via the <M>oderator
  1462.      command.
  1463.  
  1464.      V.I.8 Name Change
  1465.         Any Aide may change the name of a room via the <N>ame change command
  1466.      while editing a room.  There are a couple of constraints on the name of a
  1467.      room.
  1468.  
  1469.        o It must be 19 characters or less long.  A zero length name IS viable,
  1470.      but be aware that if the room ever becomes empty, there is no way to
  1471.      access that room.
  1472.  
  1473.        o It must be unique within the system.
  1474.  
  1475.      V.I.9 Only Invitational
  1476.         A room can be set to one of three status settings insofar that users
  1477.      are allowed access to it.  A room may be Public, in which case all users
  1478.      have access to the room.  If a room is Private, then all users that know
  1479.      the name of the room may gain access to the room simply by typing ".Goto
  1480.      FULLROOMNAME". (See Section V.I.9 for the Public/Private settings.)
  1481.      Or a room may be Invitational.  Users can only gain access to such a room
  1482.      by being invited (i.e., <L>ured -- see Section V.I.5).  Even if they know
  1483.      what the name of the room is, they cannot successfully .Goto it.
  1484.  
  1485.         A room can be either Public, Private, or Invitational, but not any
  1486.      combination.  It would perhaps be more logical to combine the <O>nly
  1487.      Invitational command (this one), with the following command, <P>rivacy
  1488.      status.
  1489.  
  1490.      V.I.10 Privacy Status
  1491.         Any Aide may set the <P>rivacy status of a room.  Section V.I.8
  1492.      provides an adequate explanation of privacy and rooms.
  1493.  
  1494.      V.I.11 Temporary Status
  1495.         Any Aide may set the <T>emporary status of a room.  Any room may be
  1496.      either Temporary or Permanent.  A Temporary room is a room that may be
  1497.      deleted by any of three events when it becomes empty (i.e., no messages
  1498.      in the room):
  1499.  
  1500.        o An Aide executes a .Aide Delete empty rooms command;
  1501.  
  1502.        o The number of rooms in use in the system reaches #MAXROOMS and another
  1503.      room is created;
  1504.  
  1505.        o The system is reconfigured (see Section ??? [installation manual] on
  1506.      the CONFG program).
  1507.  
  1508.         A Permanent room may only be deleted by a specific .Aide Kill Room
  1509.      command.
  1510.  
  1511.         All Directory and Shared rooms are Permanent.  Otherwise, if Permanent
  1512.      status is desired for any room, it must be explicitly set by use of the
  1513.      <T>emporary status command.
  1514.  
  1515.  
  1516.                                   -19-
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.      V.I.12 Shared status
  1524.  
  1525.         The Sysop may use the <S>hared status command to affect the current
  1526.      room's Network status, including which systems to network with and which
  1527.      should not be networked with.  Please consult NETWORK3.MAN for more
  1528.      details.  A Shared room is Permanent.
  1529.  
  1530.      V.I.13 Upload/Download status
  1531.         The Sysop may use the <U>/D status command to change the upload/down-
  1532.      load status of a directory room.  See Section VI.y for more details on 
  1533.      this command.
  1534.  
  1535.      V.I.14 Withdraw Invitations
  1536.         On occasion, users need to be evicted from a room.  The <W>ithdraw
  1537.      Invitations command allows any Aide to evict users from a room.  This
  1538.      command is certainly not useful for Public rooms, and not entirely
  1539.      effective for private rooms, but can be very useful for Invitational
  1540.      rooms.
  1541.  
  1542.      V.I.15 Network Downloadable
  1543.         The Sysop may use the <Z> command to designate whether or not a
  1544.      directory room may be accessed via the network for download purposes.
  1545.      See Section VI.y for more details on this command.
  1546.  
  1547.      V.II Other room editing commands
  1548.         There are two other commands that an Aide may use while editing rooms.
  1549.      The first is <V>alues, which gives the current positive attributes of the
  1550.      room.  The second is e<X>it editing, for exiting from the editing process.
  1551.      When substantive changes have been made to a room, a message is left in
  1552.      the Aide> room detailing the changes made.
  1553.  
  1554.      V.III Three exceptions
  1555.         Three rooms cannot be modified through editing (or any other process),
  1556.      and these rooms are
  1557.  
  1558.        o #baseRoom>.  This room is always a Public, Permanent room.
  1559.  
  1560.        o Mail>.  This room is a very special room, but essentially boils down
  1561.      to Public, Permanent, with some Shared capabilities.
  1562.  
  1563.        o Aide>.  This room is a Permanent, Invitational room, with Invitations
  1564.      automatically issued to Aides.
  1565.  
  1566.      VI.UPLOAD/DOWNLOAD CAPABILITIES
  1567.  
  1568.      VI.I Origin
  1569.         According to what rumors we have gathered from Seattle, the origin of
  1570.      Citadel, the original Citadel installations did not have any upload/down-
  1571.      load facilities; they were pure message systems.  Reportedly, "directory
  1572.      rooms" were kludged in at a later time as an afterthought by an early
  1573.      author.
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.                                   -20-
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.         They must be one of the more successful kludges in history.  Directory
  1590.      rooms, which serve as "windows" to the host operating system's file system
  1591.      in Citadel-86, have proven to be extremely useful constructs, allowing
  1592.      access to specified parts of MS-DOS's file system while not disrupting
  1593.      Citadel's structure with such excess baggage as "file sections".  The room
  1594.      structure allows easy division of files into their subject areas, and this
  1595.      integration into the room structure offers the additional, and very
  1596.      useful plus, of allowing conversation relevant to those files to coexist
  1597.      within easy reach of the user.  Compare this to, say, Fido or RBBS, which
  1598.      force you to go from a file section to a message section in order to
  1599.      discuss a file, and the advantages of Citadel (at least to this author)
  1600.      become obvious.
  1601.  
  1602.      VI.2 Creation
  1603.         A directory room is created by editing an existing room to directory
  1604.      status.  This is an operation that only a Sysop can do, using the .Aide
  1605.      Edit command.  Once at the room edit prompt, the Sysop should select the
  1606.      <D>irectory option.
  1607.  
  1608.         Citadel-86 will ask if you wish to activate a directory for this room,
  1609.      and you should of course answer yes.  It will then ask for the name of a
  1610.      directory to associate with this directory room.  You should answer with
  1611.      the name of a normal MS-DOS directory.  You may specify a drive, and the
  1612.      directory may be a subdirectory of the current directory, or it may be
  1613.      an absolute specification; there is no limit.  If you simply hit a
  1614.      Carriage Return, Citadel-86 will assume that you mean the current
  1615.      directory on the current drive.
  1616.  
  1617.         If you specify a directory that does not exist, Citadel-86 will ask
  1618.      you if it should be created, and if you answer affirmatively, it will
  1619.      be created.  Otherwise, you will be asked again.
  1620.  
  1621.         Finally, the system will ask if the room will accept uploads and allow
  1622.      downloads (these options can be accessed while editing rooms separately
  1623.      by selecting the <U>/D option).  This gives you some control over the
  1624.      behavior of the directory room.  When either of these options are "off",
  1625.      only a sysop can upload or download or read the directory, depending on
  1626.      the option.
  1627.  
  1628.         A file room is identified by the character at the end of the room name.
  1629.      Normal rooms have a ">".  Normal directory rooms have a "]", while
  1630.      directory rooms which are also shared with other systems (which has no
  1631.      meaning insofar as the directory goes) have a ":".
  1632.  
  1633.      VI.3 User commands
  1634.         The user is provided with two sets of commands for accessing the
  1635.      directory of a room.
  1636.  
  1637.      VI.3.i Content listing
  1638.         When a listing of the files in a room is requested, only the visible
  1639.      files are listed.  Hidden files and subdirectories in the directory are
  1640.      not listed.
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.                                   -21-
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.         There are two commands for displaying a listing of the files accessible
  1656.      in a room.  The first command is
  1657.  
  1658.          .Read Directory <file-spec> <date-spec>
  1659.  
  1660.         If <file-spec> is empty, then all files are listed; otherwise, only 
  1661.      those files matching <file-spec> are listed.  For a full explanation of
  1662.      <file-spec>, see X.3.c.
  1663.  
  1664.         <date-spec> allows the user to specify files matching <file-spec> to
  1665.      also meet a date requirement.  "<" is used to specify files dated before
  1666.      a given date, while ">" is to specify after the given date (inclusive).
  1667.      If the user does not specify a date after the ">" or "<", then the date
  1668.      of their last logon is used.
  1669.  
  1670.         Files are listed for the user as
  1671.  
  1672.     <name> <block size>
  1673.  
  1674.      where block size is the size of the file in 128 byte blocks, which, not
  1675.      coincidentally, is the size of blocks used by XMODEM for file download.
  1676.  
  1677.         The second command is
  1678.  
  1679.          .Read Extended-directory <file-spec> <date-spec>
  1680.  
  1681.         which allows the user to see file descriptions "attached" to files.
  1682.      Files are listed in one of two formats.  The first (and original) format
  1683.      is
  1684.  
  1685.      <name>  <size> | <description> <file date>
  1686.  
  1687.      while the second (and more recent) format is
  1688.  
  1689.      <name>  <size>  <file date>  <uploader identification>
  1690.         | <description>
  1691.  
  1692.         Either display is formatted to the user's display.  Each file starts
  1693.      on a new line, thus providing a readable format.  (Users can select which
  1694.      display they want via .ECZ.)
  1695.  
  1696.         The descriptions for the files in a room are kept in a normal text file
  1697.      named FILEDIR.TXT, which must reside in that directory.  If the sysop
  1698.      wishes to create file descriptions for a set of files, the format of
  1699.      FILEDIR.TXT is simple, and it is
  1700.  
  1701.              <name><one or more spaces><description on one line>
  1702.              . . .
  1703.  
  1704.         FILEDIR.TXT must be in alphabetical order (case-insensitive) in order
  1705.      to function correctly.  Each description may be no more than 7K long, and
  1706.      must reside on the same line as the name.
  1707.  
  1708.         The FILEDIR.TXT for any given directory room is updated by Citadel-86
  1709.      whenever a file is uploaded to that directory room, thus minimizing the
  1710.      maintenance chores of a Sysop with numerous directory rooms.
  1711.  
  1712.  
  1713.  
  1714.                                   -22-
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.         You may place comments in a FILEDIR.TXT simply by placing before each
  1722.      comment line a ';'.  Since these comments are displayed to the user during
  1723.      the use of .Read Extended, this lets the sysop embed informative messages
  1724.      within the file directory, such as "These files are for Amigas only."
  1725.      In FILEDIR.TXT, the above would be ";These files are for Amigas only."
  1726.      You may scatter these comments about wherever you wish in FILEDIR.TXT.
  1727.      Comments are the only exception to the sorting rule mentioned above,
  1728.      Citadel-86 only prints such lines during processing and does nothing else
  1729.      with them.
  1730.  
  1731.         Finally, if there is a file missing from FILEDIR.TXT (or if
  1732.      FILEDIR.TXT itself is missing), there is NOTHING to worry about.  There
  1733.      will simply be no file description displayed for the affected files.
  1734.      Further, excess entries in a FILEDIR.TXT do no harm to the listing
  1735.      (however, if you are fastidious you should research the Citadel-86 utility
  1736.      CULLDIR.EXE).
  1737.  
  1738.         The only weakpoint in FILEDIR.TXT is the fact that the entries must be
  1739.      in alphabetical order.  If they are not, file descriptions will not
  1740.      display at all.
  1741.  
  1742.      VI.3.ii File transfers
  1743.         The second set of commands for accessing the directory of a room are
  1744.      those concerned with uploads and downloads.
  1745.  
  1746.      VI.3.ii.a Upload Protocols
  1747.         There are three protocols supported for the upload of files, XMODEM,
  1748.      YMODEM, and WXMODEM.  While this subject is covered in the FILES.HLP
  1749.      help file, we'll go over it here, too.  (External drivers for uploads are
  1750.      covered in section XV of this manual.)
  1751.  
  1752.         The command format for uploading a file via XMODEM is
  1753.  
  1754.              .Enter File     or .Enter Xmodem File
  1755.  
  1756.         The command format for uploading a file via YMODEM is
  1757.  
  1758.              .Enter Ymodem File
  1759.  
  1760.         The command format for uploading a file via WXMODEM is
  1761.              .Enter Wxmodem File
  1762.  
  1763.         After typing in any of these commands, Citadel-86 will prompt the user
  1764.      for the name of the new file.  If a file already exists by that name in
  1765.      the directory, the upload is aborted at this point; if the file name is
  1766.      not acceptable for any other reason (for instance, the name is special to
  1767.      DOS, such as CON:, or the user has attempted to specify a drive name),
  1768.      the upload is aborted.
  1769.  
  1770.         Once the filename is accepted, Citadel-86 will prompt for a description
  1771.      of the file.  If the subsequent upload is a success, the directory's
  1772.      FILEDIR.TXT is updated with the name and description of the new file.
  1773.      Citadel-86 will then ask if the user is ready to start the upload.  If the
  1774.      user responds negatively, the upload is aborted; otherwise, the chosen
  1775.      protocol starts in receive mode.
  1776.  
  1777.  
  1778.  
  1779.  
  1780.                                   -23-
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.         YMODEM's BATCH mode is NOT supported for uploads by Citadel-86, for the
  1788.      reason that it would be very easy for a malicious user to abuse the system
  1789.      through the upload of numerous files.
  1790.  
  1791.      VI.3.ii.b Download Protocols
  1792.         Four protocols are supported for downloads, XMODEM, YMODEM, WXMODEM,
  1793.      and straight text transfers, which is the default transfer protocol
  1794.      if neither of the other three are specified (unlike the upload command, 
  1795.      where XMODEM is the default).  External protocol drivers for file
  1796.      downloads are covered in Section XV of this manual.
  1797.  
  1798.         Command format is
  1799.  
  1800.              .Read [protocol] <Binaryfile|Textfile> [Formatted]
  1801.  
  1802.         XMODEM is specified using <X>modem.
  1803.  
  1804.         YMODEM is specified, of course, using <Y>modem.  When downloading
  1805.      files via YMODEM, only BATCH mode is available, even if only a single
  1806.      file is to be downloaded.
  1807.  
  1808.         WXMODEM is specified using <W>xmodem.
  1809.  
  1810.         The Binaryfile and Textfile specifications are synonyms, being a
  1811.      holdover from the CP/M days of Citadel.  However, the Formatted option
  1812.      can only be used with the Textfile option.  If a file is requested using
  1813.      the Formatted option, the file(s) requested (which Citadel-86 assumes to
  1814.      be normal MSDOS text files) will be formatted to the user's screen.
  1815.      Otherwise, the file is simply sent on a byte-by-byte basis to the user.
  1816.  
  1817.         When an acceptable download command is entered, Citadel-86 will prompt
  1818.      for a filename from the user, which can be a <file-spec> (see VI.3.iii).
  1819.      If more than one file matches <file-spec>, then all those files will be
  1820.      sent using the specified protocol.  In the case of XMODEM, this will
  1821.      probably be less than successful.  A <date-spec> may also be entered
  1822.      at the same time as a file spec, thus allowing the use of BATCH protocols
  1823.      in combinations with file specs.
  1824.  
  1825.      VI.3.iii <file-spec>
  1826.         A <file-spec> for Citadel-86 can range from being a single file (like
  1827.      "HELLO.TXT") to an ambiguous file specification in MSDOS format ("*.TXT"),
  1828.      to a list of files mixing both single file specifications and ambiguous
  1829.      file specifications.  For example,
  1830.  
  1831.              .Read Extended-directory *.MAN HELP.ME C*.HLP
  1832.  
  1833.      would display all the files that match any of those specifications.  Each
  1834.      part of the specification should be separated from the next by one or more
  1835.      spaces.
  1836.  
  1837.      VII. OTHER COMMANDS MENU
  1838.  
  1839.      VII.1 General Purpose
  1840.         The purpose of the Other Commands submenu of the Privileged Functions
  1841.      Sysop menu is to allow the Sysop access to commands that may be unique to
  1842.      the installation of Citadel in operation.
  1843.  
  1844.  
  1845.  
  1846.                                   -24-
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.      VII.2 Citadel-86 Other Commands
  1854.         Citadel-86 supports only three commands from this sub-menu -- a
  1855.      haphazard effort, indeed.
  1856.  
  1857.      VII.2.a Deletion
  1858.         The <D>elete File option allows the sysop to delete any file in the
  1859.      MS-DOS file system.  Only a single file at a time may be deleted;
  1860.      ambiguous file names are not supported.
  1861.  
  1862.      VII.2.b Outside Commands
  1863.         The <O>utside Commands option allows the sysop to run programs from
  1864.      within Citadel-86 (but not concurrently).  Since it is sometimes
  1865.      inconvenient to take down Citadel-86 (e.g., from remote) in order to
  1866.      execute some utility or program, this option is useful.
  1867.  
  1868.         When this option is selected, Citadel-86 will write a temporary
  1869.      CTDLTABL.SYS file (see INSTALL3.MAN, Section II.3.a) to disk, and then
  1870.      prompt you for a command line.  You may then attempt to run any program
  1871.      that you wish from the command line, simply as if you were running from
  1872.      the MS-DOS command level.
  1873.  
  1874.         The DOS shell is accessible at this point by simply typing a carriage
  1875.      return if you are the console; if you are running from remote, Citadel-86
  1876.      will refuse to do anything, since just running the shell at this point
  1877.      would disable the system.
  1878.  
  1879.     If you should try to bring this installation up while Citadel-86
  1880.      is up, you will (or should) find that the system won't come up.  This
  1881.      is because Citadel-86 generates a "lock file" during <O>utside command
  1882.      execution.  When you try to bring Citadel-86 up, it will check for the
  1883.      existence of the file CTDLLOCK.SYS, and if found, the system will print
  1884.      an error message and refuse to come up.  In the rare instances that a
  1885.      CTDLLOCK.SYS file exists when it shouldn't (for instance, losing power
  1886.      while executing an <O>utside command), simply delete it and try to
  1887.      bring Citadel-86 up.
  1888.  
  1889.      VII.2.b.i Restrictions
  1890.         There are two actions that you should avoid taking while using the DOS
  1891.      shell from within Citadel-86.
  1892.  
  1893.         First, do not delete any of the Citadel-86 data files.  These are the
  1894.      *.SYS files, such as CTDLMSG.SYS, CTDLLOG.SYS, CTDLROOM.SYS, etc.
  1895.      However, you may delete or change the CALLLOG.SYS file (this was not true
  1896.      in earlier versions of Citadel-86).
  1897.  
  1898.         Second, do not run any of the Citadel-86 utilities which change the
  1899.      nature of the Citadel-86 data files.  These utilities include DATACHNG,
  1900.      RECOVER1, EXPAND, RECOVER2, etc.  You may run without fear those utilities
  1901.      which only show various things, like CLOG, CLRAY, etc.  In general, if you
  1902.      are not sure, either take your Citadel-86 down or experiment on a small
  1903.      test system.
  1904.  
  1905.      VII.2.c View Calllog.sys
  1906.     This option is only available if you have the Outside Editor parameter
  1907.      defined (see INSTALL3.MAN).  When this option is selected, the Outside
  1908.      Editor is run using the full pathname of CALLLOG.SYS.
  1909.  
  1910.  
  1911.  
  1912.                                   -25-
  1913.  
  1914.  
  1915.  
  1916.  
  1917.      VIII. MISCELLANEOUS SUBJECTS
  1918.  
  1919.      VIII.1 Wha....?
  1920.         Like anything that grows through accretion rather than planning,
  1921.      Citadel-86 has accumulated a clutch of features that don't really fit
  1922.      into any category.  So, rather than trying to create some categories
  1923.      that don't really fit into the great plan of Someone Out There, we
  1924.      decided to write a chapter with a central theme of mishmash that would
  1925.      contain all those features that don't really fit anywhere in particular.
  1926.      So, with no further shampoo ...
  1927.  
  1928.      VIII.2 Chatty Questions
  1929.         When you drop into <C>hat mode to talk to a user, you will be faced
  1930.      with one question before you're actually allowed to communicate with
  1931.      your victim.  The question is:
  1932.  
  1933.         Treat modem as dumb caller (if answering chat type 'Y')?
  1934.  
  1935.         Denigrating as this may seem, it is an accurate question.  There are
  1936.      two ways in which you may find yourself in Chat Mode.  The first is by
  1937.      answering a Chat request by a user.  Since the user has called your
  1938.      board and is using it, it is very safe to assume the user's terminal
  1939.      program is not echoing the characters coming from your BBS back to it;
  1940.      i.e., the user is 'dumb'.
  1941.  
  1942.         The second way you may find yourself is when you are using Citadel-86
  1943.      as a terminal program via the <D>ialout command on the Sysop's Net Menu.
  1944.      When you achieve a connection this way, you will automatically be dropped
  1945.      into Chat Mode with the implicit answer to that question being 'N' -- that
  1946.      is, Citadel-86 is to assume the system on the other end will take care of
  1947.      echoing characters as necessary.
  1948.  
  1949.         So why the question, you ask?  Because occasionally you will call a
  1950.      system and then find a reason to get out of chat while the other system
  1951.      is still on-line, do something, and then get back into Chat to continue
  1952.      your session.  Though it is certainly true you can return to the Net
  1953.      Menu, type <D>ialout again and be automatically dropped into Chat,
  1954.      it's easier to just hit <C>hat at any room prompt, answer 'N', and
  1955.      continue on your merry way.
  1956.  
  1957.      VIII.3 Chat Capture
  1958.         You, Chief High Sysop, have the ability to capture chats to disk if
  1959.      you choose to do so.  When you capture a chat, a warning will be printed
  1960.      to both you and the chattee saying that the chat is being captured; when
  1961.      you choose to stop capturing chat, another warning will be printed
  1962.      indicating that the session is no longer being captured.  In this way,
  1963.      you cannot successfully be accused of capturing chat sessions without
  1964.      warning.
  1965.  
  1966.         You turn on chat session during a chat by typing ^R (Control-R).  The
  1967.      system will then attempt to open a file named CHAT.TXT, and if it exists,
  1968.      the chat session should be appended to the end of that file.  If the file
  1969.      does not exist, it is created, and the resulting chat placed within.
  1970.  
  1971.         Typing a second ^R will result in the file being closed and the chat
  1972.      capture being turned off.  If you leave the chat session, the capture is
  1973.      automatically turned off at that point, and if you wish to continue
  1974.      capturing the chat (say, if you had to pop out for a moment and then
  1975.      returned), you must turn the capture back on again.
  1976.  
  1977.  
  1978.                                   -26-
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.         By a chat session, we mean both a normal <C>hat, initiated by either
  1986.      you or a caller, and the chat sessions which are initiated by the <D>ial
  1987.      System command of the Network Menu, on which there should be more details
  1988.      in NETWORK3.MAN.
  1989.  
  1990.      VIII.4 File Transfers while in Chat Mode
  1991.         When calling other systems it's not uncommon to discover you wish to
  1992.      grab a file from the other system, or send one of your's to it.  Doing
  1993.      so is quite easy in Citadel-86.
  1994.  
  1995.         For either type of file transfer, however, you must make sure you
  1996.      are in (on your own system) a directory room (see Section V if you aren't
  1997.      sure what a directory room is).  This only makes sense, of course,
  1998.      particularly if you're sending a file to the other system.  If you are
  1999.      not currently in a directory room when you discover your need to transfer
  2000.      a file either way, simply touch ESC, get to a room prompt (if you're not
  2001.      at one already), and .Goto the file.  If you have public directory rooms
  2002.      available, you need not even be logged in.  To get back into Chat mode,
  2003.      you may either go back to the Network Menu (^L-N) and type <D>ialout,
  2004.      or simply at the room prompt type <C>hat and answer 'N' to the question.
  2005.  
  2006.         In order to download a file from the other system into your system,
  2007.      first set up the other system to send you the file(s) you want.  Then
  2008.      touch the PG DN key on the keypad (NUM LOCK OFF!).  The system should
  2009.      prompt for a protocol to use, to which you answer with the correct
  2010.      letter.  If you have any external protocols installed you may select one
  2011.      of those rather than Citadel-86's XMODEM, YMODEM, or WXMODEM.  You
  2012.      should then be prompted for a filename, and then the transfer will
  2013.      commence.  When finished, you'll be asked for a file description, and
  2014.      then you'll be dumped back into Chat mode.  NOTE: Do NOT try to use
  2015.      YMODEM BATCH when grabbing files from another system!  (Z-100s: Control-F
  2016.      is equivalent.)
  2017.  
  2018.         To upload a file from your own system to another, first make sure you
  2019.      are in the appropriate directory room (i.e., the directory room which
  2020.      holds the file to send).  Set up the other system to receive your file,
  2021.      and then touch the PG UP key.  Citadel-86 will, as it did for downloads,
  2022.      prompt for a protocol and then the file(s) to be sent.  When the download
  2023.      is accomplished you will be dumped into Chat mode.  (Z-100s: Control-E
  2024.      is equivalent.)
  2025.  
  2026.      VIII.5 ESCaping Details of Chat Mode
  2027.         On rare, rare occasion it is necessary to send an ESC while in Chat
  2028.      mode.  Yet, Citadel-86 specifically tells you that an ESC let's you out
  2029.      of Chat!  How do you get around this problem?
  2030.  
  2031.         By using the '\' key first.  When you do so, the system will pass the
  2032.      next key you press through without any interpretation, including the ESC
  2033.      key.  (If you need to send a '\', send two of them.)
  2034.  
  2035.         And one more detail: when <C>hat is used, an ESC from either the
  2036.      caller or from the Sysop will cause the Chat session to end.  When
  2037.      <D>ialout is used, only the ESC from the system console will cause the
  2038.      system to end the Chat session.
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.                                   -27-
  2045.  
  2046.  
  2047.  
  2048.  
  2049.      VIII.6 Typing at the Keyboard When the User is in Control
  2050.  
  2051.      VIII.6.a Sysop Autodial
  2052.         If your system becomes at all popular amongst the locals, you will
  2053.      rapidly find yourself in the position where you cannot get onto your
  2054.      machine whenever you like without committing foul and evil acts such as
  2055.      pulling the plugs out of modems and that sort of thing.  Since that tends
  2056.      to lead to bad reputations and negative karma, Citadel-86 gives the Sysop
  2057.      the ability to auto-dial him(or her)self; that is, you can tell the
  2058.      system, while someone else is on, that you are next in line to use the
  2059.      system. (aka "pulling rank".)
  2060.  
  2061.         To do so, simply type ^T (Control-T) while the person using the system
  2062.      is on.  The next time that the system looks at the keyboard (which is
  2063.      during <P>auses of output and other moments of the system waiting for
  2064.      input from the user) it will note that the ^T has been pressed and
  2065.      (usually) print out an acknowledgement to the system console only (the
  2066.      user will not be aware that you are anywhere near ground zero).  The
  2067.      status bar, which we'll discuss sometime along the way here, if you
  2068.      are using it, will also show that your ^T has been pushed.
  2069.  
  2070.         When the foul user logs out of the system, the system should
  2071.      immediately start beeping at you, once every ten seconds.  If you then
  2072.      hit anything on the keyboard, you get control of the system.  After
  2073.      2 minutes of beeping, the system will return its attention to the modem.
  2074.  
  2075.         If you type ^T twice while the user is on, this feature will be
  2076.      cancelled.
  2077.  
  2078.         If you type ^T when no one is on the system, the system will go into
  2079.      CONSOLE mode.
  2080.  
  2081.      VIII.6.b Chat Mode
  2082.         You can toggle Chat Mode while a user is on and in control simply
  2083.      by typing ^Z at the SysConsole.  Your status bar (see VIII.7) should
  2084.      reflect the change.  Please note typing ^Z during downloads and uploads
  2085.      won't take effect until the operation is finished.
  2086.  
  2087.      VIII.6.c Echo Mode
  2088.         You can toggle the Echo Mode (see the <E>cho toggle of the Sysop's
  2089.      Menu) by typing ^E while the user is on.  You'll be able to tell if
  2090.      this has taken effect because the display will stop or start when you
  2091.      type the ^E.
  2092.  
  2093.      VIII.7 Denizens of the Status Bar
  2094.         Citadel-86 has a status bar.  This status bar gives you a vague idea
  2095.      of what's going on with the system, using various special messages during
  2096.      system initialization, and then a hint now and then about who's on.  The
  2097.      location of the status bar depends on the machine that Citadel-86 is
  2098.      running on.  If it is a PC Clone, it occupies the second line from the
  2099.      top of the screen.  If it is a Zenith Z-100, it occupies the 25th line of
  2100.      the screen.
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.                                   -28-
  2111.  
  2112.  
  2113.  
  2114.  
  2115.         The status bar should always have
  2116.  
  2117.         "Citadel-86 Vx.xx: "
  2118.  
  2119.      showing.  What shows up after that depends on the state of the system.
  2120.      Special messages appear right after it, but they only show up when the
  2121.      system is coming up.  Here's a generic representation of the status bar
  2122.      when the system is in normal mode:
  2123.  
  2124.      "Citadel-86 Vx.xx:<name of user><time of carrier>[<Chat sig>][<^T sig>]"
  2125.  
  2126.         "Chat sig" is a capital "C", and only shows up when you have Chat mode
  2127.      on.  ^T sig is a "^T", and only shows up when you are next in line to use
  2128.      the system.  An 'E' may also show up, indicating Echo is OFF (rather than
  2129.      the more intuitive ON).
  2130.  
  2131.         Additionally, you may also have a clock on your status bar.  This
  2132.      clock, maintained once a minute (except during long reads, downloads, or
  2133.      network sessions), is displayed only if you have the status bar active,
  2134.      and will appear on the far right hand side.  You may disable this clock
  2135.      by adding "#CLOCK none" to your ctdlcnfg.sys (see INSTALL3.MAN).
  2136.  
  2137.      VIII.8 Modem disabling
  2138.         You may have noticed that when you took control of the system by
  2139.      pressing ESC, the DTR light on your modem went out.  Or you may not have
  2140.      noticed.  But it did, or should have.  This leads to that age-old
  2141.      philosophical question, "When does this happen?"  Well, DTR comes down
  2142.      (or, more generally, the modem is disabled) when the Sysop takes control
  2143.      of the system and there is no carrier.  If there is carrier, then
  2144.      connection is maintained, even when coming out of the Chat mode initiated
  2145.      by the <D>ialout.
  2146.  
  2147.      VIII.9 BADWORDS.SYS
  2148.         Usually, there is little need to actively censor Citadel users.
  2149.      However, on rare occasion you will run into local ruggies (twits, jerks,
  2150.      etc) who are expressly intent on destroying your system.  Although
  2151.      it is usually more effective to deal with the parents of such village
  2152.      idiots, or with the law when they are friendly to the local BBS
  2153.      community, Citadel-86 does provide a tool for censoring and (we hope)
  2154.      discouraging such children.
  2155.  
  2156.         If the file BADWORDS.SYS exists in your #ROOMAREA directory,
  2157.      Citadel-86 will attempt to read it to form a list of forbidden words.
  2158.      Any message entered by a non-aide will not be saved in the message
  2159.      base when it contains one of these bad words.  BADWORDS.SYS should
  2160.      be a simple text file.  All but the first two lines will contain one of the
  2161.      forbidden words (or phrases, if you like).  Please note: odd results can
  2162.      happen with small words, because this works just like the message editor's
  2163.      Replace function.  For instance, if "frog" were listed in that file,
  2164.      any message containing the word "froggie" would also not be saved.
  2165.  
  2166.         The first line of BADWORDS.SYS is reserved for an "icky" level.  This
  2167.      level indicates how many times a user may use one of the forbidden words
  2168.      before the system will drop carrier on them.  You indicate this icky
  2169.      level by simply putting the number there, like "5".  If you were to
  2170.      put "0" at the top of the file Ctdl would kick the offender off on the
  2171.      first offense.
  2172.  
  2173.  
  2174.  
  2175.  
  2176.                                   -29-
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.         The second line of BADWORDS.SYS, if non-blank, is the name of the file
  2184.      all sub-standard messages will be written to.  If you don't want
  2185.      sub-standard messages saved anywhere, then just leave it blank.
  2186.  
  2187.         Any user kicked off the system for offending against BADWORDS.SYS
  2188.      will also be marked in CALLLOG.SYS by the letter 'B' following their
  2189.      name.
  2190.  
  2191.      VIII.10. Massive Privileges
  2192.         Sometimes you wish you could give everyone one of the privileges -- or
  2193.      take it away from everyone.  You can do this now in certain circumstances.
  2194.      When you are prompted for a user name, you can reply with either "Citadel"
  2195.      or "*".  Either means you want to apply the privilege to all of the
  2196.      accounts.  You'll then be asked if you want to give the privilege to
  2197.      everyone.  If you demur, then you'll be asked if you want to take it away
  2198.      from everyone.  If you again demur, you've effectively aborted the
  2199.      operation.  Otherwise Citadel-86 will apply or take away the privilege
  2200.      from everyone.
  2201.  
  2202.         This works for the following privileges:
  2203.  
  2204.          (User Menu -- ^L-U)
  2205.  
  2206.          <D>oor Privileges
  2207.  
  2208.      IX. SEA'S ARC files
  2209.  
  2210.      IX.1 DeArcing
  2211.         Citadel-86 allows users to selectively deARC and download files from
  2212.      ARC-generated files if the Sysop so desires.
  2213.  
  2214.         There are several considerations for the Sysop to keep in mind as s/he
  2215.      decides whether or not to enable these commands, including
  2216.  
  2217.       a) DeARCing files takes valuable system time;
  2218.       b) DeARCing files takes space which the system may not have available;
  2219.       c) Damaged ARC files can sometimes hang a deARCing program; occasionally,
  2220.          they can even damage disk systems (it's happened to me!);
  2221.       d) This ability may be vulnerable to system crashers in unforeseen ways;
  2222.       e) <myriad other disasters for the unprepared> ...
  2223.  
  2224.         Citadel-86 has implemented this ability by executing a deARCing program
  2225.      of the Sysop's choice on the file specified by the user.  The files are
  2226.      deARCed into a temporary directory that Citadel-86 creates and deletes as
  2227.      needed.  When deARCing and downloading is finished, Citadel-86 will delete
  2228.      all files that were deARCed, thus not taking up any permanent storage on
  2229.      the system.  However, the Sysop must keep in mind that if there is not
  2230.      enough temporary storage available, the system could still be hung,
  2231.      depending on what the deARCing program does when it hits a disk out of
  2232.      space limit; further, Citadel-86 does not detect when a failure occurs
  2233.      (except for no files matching the deARC mask).
  2234.  
  2235.         To enable the command, create a normal DOS text file named DEARC.SYS in
  2236.      your #ROOMAREA directory.  Citadel-86 expects that the contents of this
  2237.      file will be a single line that will name the program that you wish to use
  2238.      for deARCing.  If the program is on your PATH, then you need not specify
  2239.      the path to the program.
  2240.  
  2241.  
  2242.                                   -30-
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.         Citadel-86 makes the assumption that your deARC program's final two
  2250.      arguments will be, respectively, the name of the file to be deARCed
  2251.      (including the path, if any) and the "mask" (i.e., "*.*", "*.doc", etc.).
  2252.      This is the standard format for SEA's ARC, and so I hope that it will
  2253.      remain more or less a standard.
  2254.  
  2255.         During testing, I have noted that
  2256.  
  2257.             pkxarc
  2258.  
  2259.      works just fine, as does
  2260.  
  2261.             unpack
  2262.  
  2263.      Unpack is Borland International's deARC program, which is distributed
  2264.      with Turbo Pascal 4.0 and Turbo C 2.0.
  2265.  
  2266.         Oh, the Citadel commands to do this sort of thing?  (Read the help
  2267.      files.)  There is one.
  2268.  
  2269.             .Read Archive Binary-files
  2270.  
  2271.      This will prompt for the name of one ARC file (with or without the ARC
  2272.      extension), and then will prompt for the deARC mask.  A Carriage Return
  2273.      for the deARC mask will result in "*.*".  The system will then ask the
  2274.      user to wait for a moment, and then (attempt to) deARC the file using
  2275.      the mask.  Once finished, it will send all files to the user via ASCII.
  2276.      If the user wishes to use a protocol, they may.  For example, YMODEM
  2277.      BATCH could be used this way:
  2278.  
  2279.             .Read Ymodem Archive Binary-files
  2280.  
  2281.         Downloading files this way via YMODEM or XMODEM will be tracked by the
  2282.      Download time limits, if you are using them (or at least so I hope).
  2283.  
  2284.         'T' and 'F' are synonyms for 'B' in the above.
  2285.  
  2286.      IX.2 ARC Integrity Checks
  2287.         Citadel-86 is also capable of integrity checks on newly uploaded ARC
  2288.      files.  In order to enable this capability, the sysop must modify the
  2289.      DEARC.SYS file described in IX.1 by adding a second line.  Much like
  2290.      deARCing files, the second line also specifies a command line to be used
  2291.      for performing a file integrity check.
  2292.  
  2293.         However, the sysop MUST specify a program which returns an ERRORLEVEL
  2294.      of 0 when the integrity check succeeds, and non-0 when the check fails,
  2295.      or this feature will fail.  Fortunately, ARC V6 does precisely that, so
  2296.      if you choose to use ARC for file integrity checks, you shouldn't have a
  2297.      problem.  So, as an example, to use ARC as the file integrity check
  2298.      utility, you'd simply have the line
  2299.  
  2300.      ARC t
  2301.  
  2302.      since 't' is the file test command.
  2303.  
  2304.         Do NOT* specify a BAT file as the file check utility!
  2305.  
  2306.  
  2307.  
  2308.                                   -31-
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.         The integrity check takes place after the upload has been completed.
  2316.      The name of the file is checked, and if the extension is .ARC, your
  2317.      Citadel-86 will, if enabled, ask the user if the upload should be checked.
  2318.      If the user agrees, the check is performed.  If it succeeds, the user
  2319.      is prompted for a description.  If it fails, the user is asked if the
  2320.      upload should be aborted.  If the user assents, the file is deleted; if
  2321.      they wish to continue, they are then prompted for a description.
  2322.  
  2323.         The sysop should bear in mind that some flawed ARC files can
  2324.      cause their computer to hang during a file integrity check if they are
  2325.      using ARC V5.  ARC V6's stability in this regard is not known by this
  2326.      author.
  2327.  
  2328.         If you wish to use a test utility which requires command line arguments
  2329.      AFTER the name of the file to be tested, this can be accomplished.  Much
  2330.      like the External Protocol (Section XV), if you place "%g" somewhere in
  2331.      your integrity check command line, it will be replaced with the filename
  2332.      to be tested.  For instance, ARCE's format for testing files is "ARCE
  2333.      <filename> /T".  So a good integrity check command line (i.e., second line
  2334.      in DEARC.SYS) would be
  2335.  
  2336.         arce %g /T
  2337.  
  2338.         If you do not use '%g' in your integrity command line, then the filename
  2339.      to be test will simply be appended to the end of the command line, just as
  2340.      it is for deARCing.
  2341.  
  2342.      X.  PKWARE's ZIP files
  2343.  
  2344.      X.1 DeZIP
  2345.         Citadel-86 is also capable of handling the ZIP files generated by
  2346.      PKWARE's PKZIP utility.  Procedures for handling ZIP files are nearly
  2347.      exactly the same as for SEA's ARC files, as are the warnings.  In fact,
  2348.      the only difference is that you must create a new file named DEZIP.SYS,
  2349.      rather than DEARC.SYS, in your #ROOMAREA directory, containing the command
  2350.      to DeZip files.
  2351.  
  2352.      pkunzip -x
  2353.  
  2354.      seems to work just fine, if, of course, you have PKUNZIP.EXE available
  2355.      somewhere.
  2356.  
  2357.      X.2. ZIP Integrity Checks
  2358.         Again, as with SEA ARC files, you may optionally enable integrity checks
  2359.      on uploaded files by modifying DEZIP.SYS with a second line specifying the
  2360.      file check.  PKUNZIP -t seems to work just fine.  This check, if enabled,
  2361.      will be performed on files uploaded with a .ZIP extension.  Again, you may
  2362.      use '%g' to cause the filename to appear in a place other than the end
  2363.      of the resulting command line, although we are not aware of any test
  2364.      utility for ZIP files which uses this sort of command line.
  2365.  
  2366.      XI. ZOO Files
  2367.  
  2368.      XI.1 DeZOO
  2369.         Like ARC and ZIP files, the presence of a DEZOO.SYS will let users
  2370.      de-ZOO files online.  Instructions are the same as for ARC and ZIP.
  2371.  
  2372.  
  2373.  
  2374.                                   -32-
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.      XI.2. ZOO Integrity Checks
  2382.         Just like ARC and ZIP files, you can have the integrity of newly
  2383.      uploaded ZOO files checked automatically.  Instructions are the same.
  2384.  
  2385.      XII. LHARC Files
  2386.  
  2387.      XII.1 DeLZH
  2388.         Like ARC and ZIP files, the presence of a DELZH.SYS will let users
  2389.      de-LZH files online.  Instructions are the same as for ARC and ZIP.
  2390.  
  2391.      XII.2. LZH Integrity Checks
  2392.         Just like ARC and ZIP files, you can have the integrity of newly
  2393.      uploaded LZH files checked automatically.  Instructions are the same.
  2394.  
  2395.      XIII. GIF & FRA Files
  2396.         Citadel-86's support of GIF & FRA files resides in the commands .Read
  2397.      Extended (.RE) and .Read Archive Directory (.RAD).  When .RE is used
  2398.      on .GIF and .FRA files, Citadel-86 will extract information concerning
  2399.      the pixel dimensions of the picture and the number of colors used and
  2400.      display those values as part of the file description.  When .RAD is used
  2401.      on .GIF and .FRA files, Citadel-86 will display the GIF version of the
  2402.      file, along with the dimensional and color data mentioned above.
  2403.  
  2404.         This section is purely informational for the benefit of the sysop.
  2405.      GIF & FRA file support requires no action from the sysop.
  2406.  
  2407.      XIV. Sysop's Editor
  2408.         The sysConsole Sysop has a special message composition ability not
  2409.      available to the general users, and this is called the Sysop Editor.
  2410.      This is the ability of the sysop (i.e., any user at the sysConsole) to
  2411.      enter and edit a message using an editor other than the Citadel entry
  2412.      system.
  2413.  
  2414.         In many ways this is similar to simply preparing a message offline
  2415.      using an editor and then using the <F>ile grab option of the Sysop Menu.
  2416.      However, this option is far superior, for several reasons.
  2417.  
  2418.         First, it's somewhat faster.  When using an editor to prepare a
  2419.      response for processing by File Grab, in order to get to your editor you
  2420.      must go through Outside Commands, which causes CTDLTABL.SYS to be
  2421.      written, etc. etc.  When using this option, CTDLTABL.SYS is not written
  2422.      (think of this as a warning, too), and further the process of bringing
  2423.      your editor should be thoroughly automated.
  2424.  
  2425.         Second, you have far more flexibility.  The option is accessed via an
  2426.      option off of the 'entry cmd: ' prompt.  Thus, you can begin preparing a
  2427.      message using Citadel, switch off to your editor half-way through, return
  2428.      to Citadel for more work or simply a formatted viewing, etc. as much as 
  2429.      your heart desires.
  2430.  
  2431.         In order to activate this option, you must add at least one parameter to
  2432.      your CTDLCNFG.SYS.  This one is called '#EDITOR'.  It is followed by a 
  2433.      string naming the editor of your choice.  Your PATH is used to search for
  2434.      the editor, so you need not specify where it is located (although you may
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.                                   -33-
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.      wish to if you store your editor in a RAM drive). The editor you use must
  2448.      output a "normal" DOS text file; no attempt is made to filter the text for
  2449.      WordStar, WordPerfect, or other proprietary formats (although I haven't
  2450.      tested any of those to see if, by happenstance, they might work.  Who
  2451.      knows, you might luck out!).  An example might be
  2452.  
  2453.         #EDITOR "q"             -- use qedit
  2454.  
  2455.         If your editor needs any options set on the command line, this is the 
  2456.      place to put them.  Suppose your editor, which in this example will be 
  2457.      'wumpus', needs the option "-r" on the command line.  A good parameter
  2458.      entry would then be
  2459.  
  2460.         #EDITOR "wumpus -r"
  2461.  
  2462.         You might also want to consider using BAT files (specified in the 
  2463.      #EDITOR entry) which will clean up unwanted BAK files, etc...
  2464.  
  2465.         You may optionally add a second parameter to your CTDLCNFG.SYS called 
  2466.      "#EDIT-AREA".  If this is present, Citadel-86 will use the area (drive 
  2467.      and directory) you specify for the temporary editing space, instead the 
  2468.      current drive and directory.  This makes it easy to use a fast RAM disk 
  2469.      for Outside editing.  For instance:
  2470.  
  2471.         #EDIT-AREA "d:\"
  2472.  
  2473.      If you do plan to use a RAM drive, remember that messages can be up to 
  2474.      7.5K long, so plan your RAM drive accordingly, keeping in mind possible 
  2475.      .BAK files generated by your editor, etc.
  2476.  
  2477.         Citadel-86 attempts to run your editor by issuing the command line
  2478.  
  2479.          "<editor> <editing space>tempmsg.sys"
  2480.  
  2481.         When returning from your editor, Citadel-86 will automatically delete
  2482.      the tempmsg.sys file; however, if your editor (like many) leaves .BAK
  2483.      files behind, Citadel-86 will not try to delete it.
  2484.  
  2485.         And how do you access it?  By typing an 'O' at the 'entry cmd: ' prompt
  2486.      of the message editor.
  2487.  
  2488.         Finally, you may use the EASE utility to make these modifications,
  2489.      rather than directly changing your CTDLCNFG.SYS file.
  2490.  
  2491.      XIV.1 Sysop Editor Notes
  2492.         o Editors which must* run from their own directories may be difficult
  2493.      to support.  You might want to try using a BAT file if you really insist
  2494.      on using such editors.
  2495.  
  2496.         o Making a small RAM drive and specifying it as the editing space may
  2497.      make this feature faster.  Placing your editor in the RAM drive may make
  2498.      things really fly, if you have the extra RAM to do it.  Remember to 
  2499.      specify the RAM drive in your #EDITOR parameter, though, if you do place 
  2500.      your editor in the RAM drive.
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.                                   -34-
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.         o When you are ready to return to C-86, simply save the file back out
  2514.      to TEMPMSG.SYS (most editors will do this in some automatic style for you)
  2515.      and exit the editor.  C-86 will then retake control of the system and
  2516.      leave you at the 'entry cmd: ' prompt with your newly modified message,
  2517.      ready for more action.
  2518.  
  2519.      XV. Doors Support
  2520.         (Parts of Citadel-86 doors courtesy Gary Meadows of Asgard-86.)
  2521.  
  2522.         A "door" is a program which may be run from a host BBS program.  There
  2523.      are currently many special door programs available, including door
  2524.      monitors such as DOORWAY, games and utilities, most of which you should
  2525.      be able to run from Citadel-86 (if you find one that can't, let us know).
  2526.      When used correctly, it is intended that Citadel-86 Doors be
  2527.      QBBS-compatible.
  2528.  
  2529.      XV.1 Administration
  2530.  
  2531.      XV.1.a User administration
  2532.         Naturally, a sysop does not want just any old person to use doors.
  2533.      Therefore you may assign and take away door privileges from anyone you
  2534.      please.  You do this via the User Administration menu, using the <D>oors
  2535.      privilege.
  2536.  
  2537.      XV.1.b Door administration
  2538.         Doors are created using CTDLCNFG.SYS.  Theoretically, you may assign
  2539.      as many doors as you wish; practically, you may be limited by disk space
  2540.      as well as user patience.
  2541.  
  2542.         Door parameters in CTDLCNFG.SYS are a little different from any other
  2543.      parameter in that they do not occupy only one line of the file.  Rather,
  2544.      they occupy three lines.  Here is the generic format of door parameters.
  2545.  
  2546.      #door <entry code> <program> <location> <who> <type> <time limit> [room]
  2547.      <description>
  2548.      <command line parameters>
  2549.  
  2550.      We'll go through these one at a time.
  2551.  
  2552.      "entry code" - An entry code is what the user types to request this door.
  2553.      This parameter may not contain more than four letters, and it is your
  2554.      responsibility to ensure that no duplicates occur amongst your entry
  2555.      codes.
  2556.  
  2557.      "program" - This is the name of the program or BAT file which
  2558.      constitutes the door.  You need not specify the suffix of the file,
  2559.      although it is legal to do so.
  2560.  
  2561.      "location" - This field should contain the location in your disk system
  2562.      to move to before executing "program name".  If your specification
  2563.      contains a drive designation, the system will make that drive the default
  2564.      drive before executing attempting to change directories to the given
  2565.      directory. If you do not wish the system to change to another directory
  2566.      before executing the program, this field should contain ".", which is the
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.                                   -35-
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.      DOS jargon for "current directory".  When the door has finished, the
  2580.      system will return to the directory it was in when Citadel-86 came down
  2581.      to execute the Door.
  2582.  
  2583.      "who" - This field is a primitive security mechanism.  You may fill in
  2584.      this field with one of four values: "anyone", which indicates that anyone
  2585.      with Door privileges may execute this door, "aide" which allows only
  2586.      aides may use this door, "sysop", allowing only sysops, remote and at
  2587.      the system console, to use this door, "autodoor" (explained in 
  2588.      Section XIII.4), and "newusers" (described in Section XIII.5).
  2589.  
  2590.      "type" - this describes the type of door.  Currently, this is limited to
  2591.      one of three values, these being
  2592.  
  2593.       o "modem"    - User must be remote (modem) in order to use door.
  2594.       o "console"  - User must be at the system console in order to use door.
  2595.       o "anywhere" - User location does not matter.
  2596.  
  2597.      "time limit" - This field lets you specify how long (aggregate) a user may
  2598.      use any given door during a single login period.  You should specify the
  2599.      time in minutes; if you do not wish to place a time limit on a given door,
  2600.      you may instead specify "unlimited".
  2601.  
  2602.      "room" - This is an optional parameter.  If it is present, it specifies
  2603.      the name of the room from which this door may be run; the door may not be
  2604.      run from any other room.  So, this provides another security arrangement.
  2605.      If this parameter is not present, then this door may be run from any room,
  2606.      subject to other restraints.
  2607.  
  2608.      "description" - This field, which occupies a line of its own, should
  2609.      contain your description of the door.  These descriptions are displayed 
  2610.      to users.  The description should not be more than 79 characters in
  2611.      length.
  2612.  
  2613.      "command line parameters" - This important field is used to build a
  2614.      command line for the program.  The format here should be simple to use:
  2615.      type in the command line, minus the program name, as if you were typing
  2616.      it at the command line.  This sounds simple until you realize that some
  2617.      doors need data from the command line which you simply cannot provide
  2618.      from here.  This includes such data as the Com port, the baud rate, etc.
  2619.      Therefore, we have provided to you a simple way to add these sorts of
  2620.      things in.  Wherever in the command line you need to add these things in,
  2621.      you will instead type a percentage sign ('%') followed by a letter.  This
  2622.      %letter will be replaced at runtime by the value associated with that
  2623.      combination.  The following is a list of all such combinations currently
  2624.      supported.
  2625.  
  2626.      %a - This is replaced with the current baud rate of the user, or 0 if
  2627.           sysConsole.
  2628.      %b - This is replaced with the current bps rate of the user, or 0 if
  2629.           sysConsole.
  2630.      %c - This is replaced with the port number of the user, or "LOCAL" if
  2631.           sysConsole.
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.                                   -36-
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.      %d - This is replaced with the name of the user.
  2646.      %e - This is replaced with the log number of the user.  Unlikely that
  2647.           you'll need it, but just in case ...
  2648.      %f - This is replaced with the ANSI code of the user.  This is not part of
  2649.           the user record, unlike Asgard-86, but provision may be made in a
  2650.           later release for the user to indicate what level of ANSI they can
  2651.           handle.  At the moment, it is set to 0.
  2652.  
  2653.         Identification of more useful parameters which Citadel-86 might supply
  2654.      is welcome (and probably easy to add).
  2655.  
  2656.         Even if there is no need for information to be on the Description and
  2657.      Parameters, blank lines must exist in their positions.
  2658.  
  2659.         So, let's move on to an example.  Suppose we have a door program named
  2660.      MOO. It must be run from the directory C:\MOOING, and the command line must
  2661.      look like
  2662.  
  2663.      MOO COMx SPEED=y
  2664.  
  2665.      where x is the Com port and y is the baud rate of the user.  Further, you
  2666.      want the users to type .Door COWS in order to run the program, and
  2667.      everyone may use it, but only from remote, but they may use it as much as
  2668.      they like. Your entry in ctdlcnfg.sys would then look like
  2669.  
  2670.      #door COWS MOO c:\mooing anyone modem unlimited
  2671.      This program is a must for beefeaters!
  2672.      COM%c SPEED=%a
  2673.  
  2674.      Suppose you wanted to add the further restriction that it only can be run
  2675.      from a room named Door Talk>.  Then the entry would read
  2676.  
  2677.      #door COWS MOO c:\mooing anyone modem unlimited Door Talk
  2678.      This program is a must for beefeaters!
  2679.      COM%c SPEED=%a
  2680.  
  2681.      XV.2 BAT file support
  2682.         Once a user has selected a door (the next section discusses the user
  2683.      interface), Citadel-86 will bring itself down.  THIS IS VERY IMPORTANT:
  2684.      the system will EXIT with an ERRORLEVEL of 4, which is a reserved
  2685.      ERRORLEVEL of Citadel-86.  Therefore, your BAT MUST be prepared to handle
  2686.      exits of ERRORLEVEL 4 by running the C-86 utility C86Door.Exe if you wish
  2687.      to run doors.  For instance,
  2688.  
  2689.      :loop
  2690.      ctdl ...
  2691.      ...
  2692.      if errorlevel 4 goto door
  2693.      ...
  2694.      :door
  2695.      c86door
  2696.      goto loop
  2697.  
  2698.      C86DOOR does not require any command line arguments.
  2699.  
  2700.      User interface is via the <D>oor and <.D>oor <entrycode> commands.
  2701.  
  2702.  
  2703.  
  2704.                                   -37-
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  
  2711.      XV.3 Door compatability
  2712.         Citadel-86 door support is designed to be compatible with the QBBS
  2713.      standard; in other words, C86Door will generate DORINFO1.DEF before the
  2714.      door is activated.  Citadel-86 also contains support for WILDCAT! and
  2715.      Marshall Dudley's DOORWAY.SYS file (so you can run DOORWAY using the SYS
  2716.      parameter).
  2717.  
  2718.      XV.4 Automatic doors
  2719.         An 'automatic door' in Citadel-86 parlance is a door which is auto-
  2720.      matically run when a specified user logs in.  This can be useful in 
  2721.      several situations, such as with non-C86Net sites which can poll you by
  2722.      calling your system and doing a manual login.  By setting an automatic
  2723.      door to run when that account is used, you may immediately drop the
  2724.      caller into an appropriate network program.  And then, of course,
  2725.      there's your imagination.
  2726.  
  2727.         Automatic door administration is somewhat more complicated than normal
  2728.      door administration.  The system operator must insert two (or more
  2729.      entries) into his CTDLCNFG.SYS file.  Naturally, one is the #door entry.
  2730.      As noted above,`you may, or may not use, a fourth value for the 'who'
  2731.      field of a #door entry, and that is 'autodoor'.  If you use that for the
  2732.      'who' value, then the door is completely unavailable to everyone except
  2733.      the account(s) assigned to this door, and then only on login.  So, for
  2734.      instance,
  2735.  
  2736.      #door mooing cows \pasture autodoor anywhere unlimited
  2737.      <blank line unless you want a description>
  2738.      <whatever parameters are needed>
  2739.  
  2740.         So, how do you assign one or more users to an automatic door?  By using
  2741.      #events (you had better be familiar with events).  The format for an event
  2742.      which will do this is
  2743.  
  2744.      #event <days> <time> autdoor quiet <duration> "" "<username>" <entrycode>
  2745.  
  2746.         The fields <days>, <time>, and <duration> function as usual, allowing
  2747.      you to control when automatic doors are active on an individual basis.
  2748.      The <class> autodoor tells Citadel-86 that this is an automatic door
  2749.      event. "<username>" is the name of the user which will trigger this
  2750.      automatic door in quotes.  <entrycode> is the entrycode of the door to
  2751.      execute.  So, continuing with the above example,
  2752.  
  2753.      #event all 2:00 autodoor quiet 180 "" "Bossy" mooing
  2754.  
  2755.      would cause Citadel-86, on all days, but only between 2am and 5am, to
  2756.      execute the door identified as 'mooing' whenever the user Bossy logs in.
  2757.  
  2758.         Note that when the door is finished, the user is not disconnected from
  2759.      the system.
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.                                   -38-
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.      XV.5 New User Doors
  2778.         You may configure Citadel-86 to run a door when a user tries to login
  2779.      as a new user.  To do so, you set up a door entry in your CTDLCNFG.SYS
  2780.      file just as normal, except for the "who" field.  This should contain
  2781.      the value "newusers".  For example,
  2782.  
  2783.         #door s valid . newusers anywhere -1
  2784.         New user door
  2785.         ...
  2786.  
  2787.         This entry defines a door named "s", running a program named VALID
  2788.      in the current directory ("."), of type newusers which can be run
  2789.      from both remote and local.  In reality, the door name is irrelevant,
  2790.      as is the door description.  The parameters field will, of course, be
  2791.      crucial.
  2792.  
  2793.         There is one critical difference between newuser doors and other
  2794.      types of doors -- newuser doors are NOT run by taking Citadel-86 down
  2795.      and letting the batch file take over.  Instead, Citadel-86 will
  2796.      directly execute the program.  This is done both for internal technical
  2797.      reasons and for performance reasons.  Very large systems may have
  2798.      difficulties running new user doors for this reason.
  2799.  
  2800.         This is a rather advanced option, and may require some work to get
  2801.      working correctly, especially if you are trying to use the DOORWAY
  2802.      driver program.  If you are, please bear in mind that since Citadel-86
  2803.      is directly executing the program rather than letting the C86Door.Exe
  2804.      program do the work, the DOOR.SYS file will NOT be generated.  Since
  2805.      this file is only an option for DOORWAY, this does not cripple you,
  2806.      only makes things more difficult.
  2807.  
  2808.      XVI. Citadel-86 as a Door
  2809.         Citadel-86 may be used as a door itself if you wish.  The procedure
  2810.      for setting up a Citadel-86 as a door is
  2811.  
  2812.       a) Add the parameter '#ISDOOR' to your CTDLCNFG.SYS file and reconfigure
  2813.       b) Citadel-86 will expect the string "bps=xxx" on its command line when
  2814.      coming up.  If it is not present, the installation will gracefully abort.
  2815.      The "xxx" is the bps of the modem (i.e., "30", "120", etc.), or "0" if
  2816.      the user is at the sysConsole ("LOCAL" is a synonym for "0" in this case).
  2817.      A BAT file containing "ctdl bps=%1" might be a good idea if you can get
  2818.      whatever BBS you're using to put the correct data on the command line of 
  2819.      the BAT file.
  2820.  
  2821.         If you're running Citadel-86 as a door from within another Citadel-86
  2822.      (!) a good #door entry might be
  2823.  
  2824.        #door xxxx ctdl xxxxx xxxxxx xxxxxxxx xxxxxxxxx [xxxxxx]
  2825.        Another C-86
  2826.        bps=%b ...
  2827.  
  2828.         since "%b" will put out the bps of the user (see Section XIII).
  2829.  
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836.                                   -39-
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.  
  2843.      XVII. External Protocol Drivers
  2844.         In addition to the three file transfer protocols supported internally
  2845.      by Citadel-86 (XMODEM, WXMODEM, and YMODEM BATCH), you may also configure
  2846.      your system to support external protocols, such as DSZ, etc.  These
  2847.      external protocols can be used for both file and message transfers,
  2848.      almost appearing to be built-in protocols, differing only in that slight
  2849.      pauses may occur while starting the external driver and an additional pause
  2850.      for message transfers (messages must be saved to disk in a file before
  2851.      transferring them to the user).
  2852.  
  2853.      XVII.1 Adding drivers
  2854.         You may add one or more protocols to your system by creating a file
  2855.      named CTDLPROT.SYS in your #ROOMAREA directory.  This file is a textfile.
  2856.      Each line of the textfile contains an entry for an external protocol
  2857.      you wish to support for uploading and/or downloading.  The generic format
  2858.      of each entry is:
  2859.  
  2860.         [selector] [1/M] [name] [u/d] [command line]
  2861.  
  2862.         The 'selector' is the key the user must press in order to access this
  2863.      particular protocol.  For instance, if you want to make ZMODEM available
  2864.      to your users, and you wish them to access ZMODEM via the letter 'Z',
  2865.      then the entry would read "Z ...".
  2866.  
  2867.         If you should accidentally select a letter already in use for that
  2868.      particular command (i.e., .Read or .Enter), then your user cannot access
  2869.      the protocol even though you've made it available.  Therefore, you may
  2870.      have to select a different letter as a selector.  You may use any capital
  2871.      letter (small letters are not valid) or a digit.  Please consult your help
  2872.      files to discover what letters are already reserved (SUMMARY.HLP).
  2873.  
  2874.         The '1/M' field tells Citadel-86 if this protocol is capable of batch
  2875.      downloads or not (and, therefore, this entry is meaningless but required
  2876.      for upload specifications).  '1' means this protocol can only send one
  2877.      file, while 'M' means it can send 'M'any.  Since ZMODEM is capable of
  2878.      batch transfers, your entry for ZMODEM, to continue our example, would now
  2879.      look like "Z M ..."
  2880.  
  2881.         The 'name' of the entry is the name you wish echoed to the user when
  2882.      the user selects a protocol.  If the first letter of the name does not
  2883.      match the Selector of this entry, Citadel-86 will backspace over the
  2884.      Selector and replace it with the name.  This field can NOT consist of
  2885.      two words separated by a space!  In other words, "MooModem Protocol" will
  2886.      NOT work.  If we might continue our example, Zmodem's entry would now
  2887.      look like "Z M Zmodem ..."
  2888.  
  2889.         The 'u/d' part specifies if this particular entry is for uploading or
  2890.      downloading a file.  There is absolutely nothing wrong with having double
  2891.      entries for the same protocol, one covering how to upload a file using
  2892.      the protocol and the other downloading, and in fact that is very much the
  2893.      rule.  So, for Zmodem, uploading would look like "Z M Zmodem U ..." and
  2894.      downloading would look like "Z M Zmodem D ...".
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.                                   -40-
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.         Finally, the 'command line' part of the entry is the actual command
  2910.      sent to DOS in order to receive or send a file.  Obviously, just a simple
  2911.      text line may not be enough, so you, the sysop, are provided with a way
  2912.      to tell the external protocol a number of things.  To specify one of these
  2913.      parameters to a driver, you use the following 'macros':
  2914.  
  2915.                 %a - The baud rate of the caller
  2916.                 %b - The bps (bytes per second) of the caller
  2917.                 %c - The port the your system is configured for (#COM)
  2918.                 %d - The name of the current user
  2919.                 %g - The list of files for transfer
  2920.                 %h - Identical to %c except it will be replaced with
  2921.                      "COMx" where x will be your com value, unless the user
  2922.                      is at the system console, in which case "LOCAL" will
  2923.                      be generated.  Eases use with DOORWAY in conjunction
  2924.                      with External Message Editors (Section XVIII), not real
  2925.                      useful for External Protocols.
  2926.                 %i - The name of the current room.
  2927.                 %j - The name of the directory if this is a directory room.
  2928.                      C-86 automatically moves to the correct directory within
  2929.                      DOS before executing a protocol; this parameter is of
  2930.                      more use with External Message Editors.
  2931.                 %k - The column width of the current user (more useful for
  2932.                      External Message Editors).
  2933.  
  2934.         For instance, when using DSZ to for Zmodem, DSZ expects a command
  2935.      line basically like this:
  2936.  
  2937.         "dsz port <port num> sz <filenames>"   for downloading and
  2938.         "dsz port <port num> restrict rz <filenames>"   for uploading.
  2939.  
  2940.         Therefore, your ctdlprot.sys file will contain the following two lines:
  2941.  
  2942.         Z M Zmodem U dsz port %c restrict rz %g
  2943.         Z M Zmodem D dsz port %c sz %g
  2944.  
  2945.         DSZ automatically senses the baud rate, so you do not have to tell
  2946.      it that in this example.
  2947.  
  2948.         If you do not like creating text files, you may also use the utility
  2949.      EASE to create, edit, and delete your external protocol entries.
  2950.  
  2951.      XVII.2 Number of drivers
  2952.         You may only add 15 drivers to your system.  That should be more
  2953.      than enough.
  2954.  
  2955.  
  2956.  
  2957.  
  2958.  
  2959.  
  2960.  
  2961.  
  2962.  
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968.                                   -41-
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.      XVII.3 USR HST 9600 notes
  2976.         Citadel-86 handles the USR HST modem by 'locking' the COM port at
  2977.      9600 and letting the modem handle buffering between the 9600 of the COM
  2978.      port and the speed of the caller.  It does this by using the CTS/RTS
  2979.      lines to throttle your computer when needed.  Some external protocol
  2980.      drivers may not realize this is happening when used on a Citadel-86
  2981.      system with a USR HST 9600, and thus become confused.  This is known to
  2982.      be true with Chuck Forsberg's DSZ program.  It is recommended that USR
  2983.      HST 9600 systems use the following entries for ZMODEM in their
  2984.      CTDLPROT.SYS files:
  2985.  
  2986.         Z M Zmodem U dsz port %c handshake both restrict rz %g
  2987.         Z M Zmodem D dsz port %c handshake both sz %g
  2988.  
  2989.         If you use a USR HST modem and experience problems with external
  2990.      drivers, keep the above solution in mind when researching your problem.
  2991.  
  2992.      XVIII. QUESTIONS & ANSWERS
  2993.  
  2994.      ---
  2995.       Q. I'm completely lost, even after going through all of the below; what
  2996.      do I do next?
  2997.  
  2998.       A. Call your local (hopefully!) friendly C-86 Sysop.  For the most part,
  2999.      they're helpful, friendly people who are more than happy to help a new
  3000.      system get its feet under itself.
  3001.  
  3002.      ---
  3003.       Q. How do I create a "directory" room?
  3004.  
  3005.       A. Edit the room.
  3006.  
  3007.      ---
  3008.       Q. When I try to bring the system up, it will come up momentarily but
  3009.      will then immediately give a crash message.  What happened?
  3010.  
  3011.       A. The first step is to look at the files on disk.  If there is a file
  3012.      called CRASH, it was created by Citadel-86, so look at it (this is a good
  3013.      General first step for most problems, too).  Within, there will be a
  3014.      fairly cryptic message which is more for debugging purposes, but can be 
  3015.      useful to the new sysop, too.  If it indicates some sort of displeasure
  3016.      with the CALLLOG.SYS file, this is usually a good pointer to the
  3017.      possibility that you haven't configured MSDOS correctly in the FILES=area.
  3018.      Check to make sure that your CONFIG.SYS file has the required FILES=20
  3019.      line in it, and, if you had to put it in for Citadel, make sure that you 
  3020.      have rebooted your system after adding it to the file.
  3021.  
  3022.       If there are still problems, then another observation is that an
  3023.      abnormally high BUFFERS= setting in CONFIG.SYS on systems that don't have
  3024.      a great deal of extra free RAM available will sometimes "steal" from the
  3025.      FILES= setting.  So, it's worth trying setting your BUFFERS= a little
  3026.      lower.
  3027.  
  3028.  
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034.                                   -42-
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.  
  3041.      ---
  3042.       Q. I try to use the <O>utside command in the <O>ther commands section of
  3043.      the Sysop Menu, but Citadel just says "Bad Return value".  What's wrong?
  3044.  
  3045.       A. In all probability, you don't have enough free RAM.  Use CHKDSK or
  3046.      some other utility to find out how much free RAM you have.
  3047.  
  3048.         Please submit other pertinent questions to Hue, Jr. at C-86 Test
  3049.      System for inclusion in this manual.
  3050.  
  3051.      XIX. #event examples!
  3052.         The #event facility of Citadel-86 is a powerful tool for the sysop,
  3053.      but like many powerful tools, it is rather obtuse and arcane.  The
  3054.      purpose of this section is to illuminate some of the potential uses of
  3055.      the #event facility. What we show here is NOT the limit of what you can
  3056.      do!  This is just some hints of what we have found useful ...
  3057.  
  3058.         Before jumping into any examples, let's briefly go over the general
  3059.      format of a #event again:
  3060.  
  3061.      #event <days> <time> <class> <type> <duration> <warning string> <depends>
  3062.  
  3063.         <days> indicates what days this event is effective for.
  3064.         <time> indicates what time of the day (limited to valid days)
  3065.      the event should start (military time).
  3066.         <class> is roughly an indicator of what this #event does.
  3067.         <type> describes, roughly, how Citadel-86 reacts when this event
  3068.      occurs and a user is online.
  3069.         <duration> describes how long this event is in effect.
  3070.         <depends> is a field dependent on the class of the event.
  3071.  
  3072.         In general, when you are planning events, you must know when you want
  3073.      it to occur (in terms of both what days and at what time), how long it
  3074.      should last, what it will do during the event (its class), and what it
  3075.      will do when the event occurs if a user is on (its type).  If you want
  3076.      a certain event to happen more than once during a day, then you almost
  3077.      certainly will have to use multiple #event entries, but this hurts
  3078.      nothing.
  3079.  
  3080.         So let's plunge into the examples!
  3081.  
  3082.      XIX.1 Automating backups
  3083.         This is one of the most basic uses of #events, and can make system
  3084.      backups a process you may completely forget about.  This example will 
  3085.      illustrate how to use #events and BAT files working together to auto-
  3086.      matically backup your system.
  3087.  
  3088.         The first step is to bring Citadel-86 down prior to backing up the
  3089.      system. There are two different classes which will bring Citadel-86
  3090.      down, "external" and "relative".  "external" is more common, so we'll
  3091.      start with this one.  An event who's class is "external" will cause
  3092.      Citadel-86 to terminate (exit/come down) at the days and time you
  3093.      designate using the <days> and <time> fields.
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.                                   -43-
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.         When you are using an event of this class, you have two choices as to
  3108.      Citadel-86's behavior when a user is on, and you select your choice using
  3109.      the <type> field of the event.  If you select type "preempt" then the
  3110.      user will be kicked off the system when at the days and times selected.
  3111.      If you select type "non-preempt", then the system will wait until the
  3112.      user is finished with the system and then come down.
  3113.  
  3114.         So let's start a partial example.  Suppose you want your system to
  3115.      come down twice a day, once at 6am and once at 6pm, to do an automated
  3116.      backup, but to wait politely until any user who may be on has logged off.
  3117.      Your CTDLCNFG.SYS would contain the following two #event lines:
  3118.  
  3119.      #event all 6:00 external non-preempt 0 "" ?????
  3120.      #event all 18:00 external non-preempt 0 "" ?????
  3121.  
  3122.         OK, so now you're probably asking "Why is duration 0?"  The reason for
  3123.      this is because backing up the system may easily take less than a minute.
  3124.      When Citadel-86 comes up, it always checks the event list to see if it
  3125.      came up "during" an event, so by making this event's duration "0", we
  3126.      ensure the system won't try to back itself up more than once.
  3127.  
  3128.         You will also have noticed the "?????" occupying the <depends> field,
  3129.      so let's discuss the depends field value.  An event of class "external"
  3130.      (or "relative") will always have a <depends> field which consists of a
  3131.      single number.  This number is the ERRORLEVEL of your choice which you
  3132.      want Citadel-86 to return to the operating system.  This lets you differ-
  3133.      entiate between differing external events, allowing you to go to 
  3134.      different backup routines at different times.  (Remember, ERRORLEVELs
  3135.      1 - 4 are reserved by Citadel-86.) So, for example, you might have
  3136.  
  3137.      #event all 6:00 external non-preempt 0 "" 10
  3138.      #event all 18:00 external non-preempt 0 "" 11
  3139.  
  3140.         This should give you a good idea of how to use #events for bringing
  3141.      Citadel-86 down for backups, but doesn't hint about your BAT file, so
  3142.      let's move on to that.  This is a bit tricky, because everyone who uses
  3143.      a BAT file with Citadel-86 (and that should include just about everyone)
  3144.      does their's differently.
  3145.  
  3146.         Still, most BAT files should look the same at some point, and that
  3147.      is where it calls the actual CTDL program and where it tests the
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.                                   -44-
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.      ERRORLEVEL.  Let's continue with the example above.  That example would
  3174.      lead to this partial BAT file fragment:
  3175.  
  3176.      :loop
  3177.      ...               [ whatever ]
  3178.      CTDL ....         [ the ellipsis are simply any arguments you might use ]
  3179.      if ERRORLEVEL 11 goto backup1
  3180.      if ERRORLEVEL 10 goto backup2
  3181.      ...              [ this is other ERRORLEVEL handling and goto labels ]
  3182.      :backup1
  3183.      ...              [ whatever is necessary to do this backup of the system ]
  3184.      goto loop
  3185.      :backup2
  3186.      ...              [ whatever is necessary to do this backup of the system ]
  3187.      goto loop
  3188.      ...              [ rest of file ]
  3189.  
  3190.         The reason we show two different backup labels in this example, rather
  3191.      than one, is to illustrate that you can keep multiple backups of the
  3192.      system by using different ERRORLEVELs in your #event entries.  The 
  3193.      precise backups you might want to perform are, of course, dependent on
  3194.      your situation, and therefore we didn't illustrate those mechanics at all.
  3195.  
  3196.         So that's how to backup your system at set times and days.  There is a
  3197.      second method available which will allow you to backup your system
  3198.      relative to the time the system came up, i.e., every X minutes.
  3199.  
  3200.         This type of event is something of an oddball amongst Citadel-86 events
  3201.      because it doesn't follow the rules the other events follow.  This event's
  3202.      class is "relative", and you may select either of the types "preempt" or
  3203.      "non-preempt", but some of the other fields of the event do not act in the
  3204.      same way they do for any other class of events.
  3205.  
  3206.         To wit, the <days> field is not used, although it must be present, and
  3207.      the <time> field does not indicate when the event comes into effect, but
  3208.      instead specifies how long before the system is supposed to come down
  3209.      (hours:minutes).
  3210.  
  3211.         Otherwise, events of class "relative" are much like events of class
  3212.      "external".  The <depends> field indicates the ERRORLEVEL to exit with,
  3213.      etc.
  3214.  
  3215.      XIX.2 Scheduled NETWORK sessions
  3216.         As we noted in Network3.Man, there are two ways Network Sessions can
  3217.      occur: through normal network sessions and through the anytime net.  A
  3218.      normal network session is a session which has been scheduled to begin at
  3219.      a given period of time, last for so long, and then end, involving given
  3220.      systems.  During this time period, users may not access the system. 
  3221.      Anytime net sessions, on the other hand, can be scheduled to have the
  3222.      potential to occur during given time periods, but they may not
  3223.      necessarily occur, depending on the activity level of your system.  This
  3224.      subsection covers normal network sessions.
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232.                                   -45-
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.         The class of this type of event is "network".  The type is usually
  3240.      "preempt", although it is legal to specify "non-preempt" for the type.
  3241.      The days and time fields act as usual, specifying on what days and at
  3242.      what time a network session is to occur, and the duration field specifies
  3243.      how long the session is to last.  The "warning string" field (it follows
  3244.      the duration field) is used in this event to warn any users that the
  3245.      system will kick him or her off 5 minutes prior to the network session
  3246.      beginning if the type is "preempt".
  3247.  
  3248.         Finally, the depends field for a network event is special and
  3249.      essential, because it tells Citadel-86 which systems are eligible to be
  3250.      called at this time.  It does this using the networks Member Net
  3251.      capability.  Member Nets are explained in Network3.Man.  Here is a
  3252.      summary:
  3253.  
  3254.       o A system may be assigned to any or all of 32 nets (use node editing)
  3255.       o A system not assigned to any is 'disabled'
  3256.       o New systems are automatically assigned to net 1
  3257.  
  3258.         When you are constructing an event of class network, your depends
  3259.      field lists which net, or nets, may be called during this network
  3260.      session.  When we say "nets", we mean all systems which are assigned to
  3261.      this net.  This lets you assign different systems to be called at
  3262.      different times, participate in different C86Nets, etc.
  3263.  
  3264.         When filling in the depends field, you simply type in the #s of the
  3265.      nets you wish this network session to call, separating them by commas.
  3266.      So, for example, if you want a net session to run from 3am to 3:15am
  3267.      everyday of the week, but to only call net 1, you would have
  3268.  
  3269.      #event all 3:00 network preempt 15 "network session" 1
  3270.  
  3271.         If you wanted that net session to call all systems on nets 1, 10, and
  3272.      15, you'd have
  3273.  
  3274.      #event all 3:00 network preempt 15 "network session" 1,10,15
  3275.  
  3276.         (NOTE THE LACK OF SPACES BETWEEN NETS!)
  3277.  
  3278.         It's generally not a good idea to have network sessions overlap.
  3279.  
  3280.      XIX.3 Anytime Network Sessions
  3281.         An event of class "anytime-net" differs from "network" events in that
  3282.      it does not schedule when a network event is to occur, but only when
  3283.      there is a potential for a network session to occur (note there is a
  3284.      difference between "network event" and "network session").
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.                                   -46-
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.         This "potential" is the possibility that your system will attempt to
  3306.      contact other systems for network ("and immoral") purposes while an event
  3307.      of this class is in effect.  The possibility will be fulfilled if several
  3308.      conditions are met: the specified systems need to be called, and enough
  3309.      dead time has occurred on your system to cause a callout.  This must
  3310.      sound darned abstract, so let's look at an example:
  3311.  
  3312.      #event All 1:00 anytime-net quiet 240 "" 10 3 1,4,9
  3313.  
  3314.         Translated to English, this reads "On all days of the week, beginning
  3315.      at 1:00 in the morning and ending at 5:00, an event of class anytime-net
  3316.      will be in effect.  During this time, if the system is idle for more than
  3317.      10 minutes (i.e., no remote callers and no sysConsole users) at any one
  3318.      time, the system will commence a net session IF any systems on nets 1, 4,
  3319.      and 9 need to be called, and this net session should last a maximum of 3
  3320.      minutes, unless of course during one of the calls the time is exceeded,
  3321.      in which case the net session will extend until the call is completed."
  3322.      In other words, the generic format of an event of this class is
  3323.  
  3324.      #event <days> <time> anytime-net quiet <duration> "" <dead time>
  3325.      <net time> <nets>      (all one line)
  3326.  
  3327.         An event of type "quiet" is an event which does not cause a fuss when
  3328.      it occurs.  Citadel-86 simply notes that it occurs, usually with no sign 
  3329.      to the current user, if any.
  3330.  
  3331.         The field duration specifies how long the event is in effect; it does
  3332.      NOT specify how long any net session which occurs during this event
  3333.      should last.
  3334.  
  3335.         Dead time and net time is the amount of time the system is inactive
  3336.      before a net session is triggered and how long to stay in the net
  3337.      session, respectively.  Both are specified in minutes.  We do not have
  3338.      any recommendations at this time for these events.
  3339.  
  3340.         The nets field is precisely the same as used in events of class 
  3341.      "network" (Section XVII.2).
  3342.  
  3343.      XIX.4 Download Time Limits
  3344.         Download time limits can be set in Citadel-86 via the #event facility.
  3345.      When a #event of the class "dl-time" is in effect, a user may not
  3346.      download for more than X minutes during any given login session.
  3347.  
  3348.         The limit is specified in the depends field, not the duration field.
  3349.      The duration field, as usual, indicates how long the event is in effect.
  3350.      The limit is specified in minutes.  So, if you wanted to limit your users
  3351.      to 10 minutes of downloading from 7PM to midnight every day of the week
  3352.      except Saturdays and Sundays, you'd have
  3353.  
  3354.      #event Mon,Tue,Wed,Thu,Fri 19:00 dl-time quiet 300 "" 10
  3355.  
  3356.         The reason the type is "quiet" is because there's no need to bring the
  3357.      system down or kick the user off.  Citadel-86 simply notes the new event
  3358.      and the limit, while the user never notices a thing.
  3359.  
  3360.         Download time limits do not apply to Aides & Sysops.
  3361.  
  3362.  
  3363.  
  3364.                                   -47-
  3365.  
  3366.  
  3367.  
  3368.  
  3369.      XIX.5 Door Time Limits
  3370.         The #event facility may be used to place limits on the total amount of
  3371.      time a user may use doors during a single login session.  As usual, the
  3372.      key to specifying this ability lies in the value of the class field of
  3373.      the event.  An event which controls how long users may use a door looks
  3374.      like this:
  3375.  
  3376.      #event <days> <time> door-limit quiet <duration> "" <limit>
  3377.  
  3378.         The days, time, and duration fields allow you to specify on what days,
  3379.      starting at what times, and how long an event of this class should last. 
  3380.      You specify the door time limitin the depends field, in minutes.  Simple
  3381.      as that. Suppose you don't want users to accumulate more than 5 minutes
  3382.      of door time between 7 and midnite of any day.
  3383.  
  3384.      #event all 19:00 door-limit quiet 300 "" 5
  3385.  
  3386.      would do this.  Please note that this is not an infallible event.  If the
  3387.      user decides to run a door which allows more usage when it is up than is
  3388.      allowed here, the door-limit will be exceeded.  If the user does exceed
  3389.      the limit, Citadel-86 will stop the user from running any more doors.
  3390.      But this is not by any means a super-duper overseer.
  3391.  
  3392.      XIX.6 Automatic Doors
  3393.         An 'automatic' door in Citadel-86 is a door which is automatically
  3394.      executed when a specified user logs in.  This is a highly specialized
  3395.      capability, and so if you're not sure that you need it, don't worry about
  3396.      it.  Basically, this will be of use to sysops who's systems may be
  3397.      subject to periodic polls from automated callers.
  3398.  
  3399.         A #event to implement an automatic door is of the form
  3400.  
  3401.      #event <days> <time> autodoor quiet <duration> "" "username" doorcode
  3402.  
  3403.         As usual, days, time, and duration lets you specify when this autodoor
  3404.      is active.  While we agree such ability might be of little use, it is
  3405.      there and feel confident someone somewhere will find a use for it.  This
  3406.      sort of event uses class "autodoor" and type "quiet".
  3407.  
  3408.         Finally, the depends field for this class of event has two values.  The
  3409.      first value is the name of the user which will trigger an automatic door,
  3410.      while the second value specifies which door is to be triggered.
  3411.  
  3412.         Example 1: Suppose everytime the user named "Local UseNet" logs in you
  3413.      want to execute the door named "usenet".  You would then require two
  3414.      separate entries in your CTDLCNFG.SYS.  The first one (although they may
  3415.      physically be in any order you wish) is the #door parameter, which would 
  3416.      read something like this:
  3417.  
  3418.      #door usenet xxxx xxxxx autodoor modem unlimited
  3419.  
  3420.      <whatever necessary options>
  3421.  
  3422.      If you are already familiar with doors, you will note the new 'who' type
  3423.      of door mentioned above: "autodoor".  A door entry with such a who value
  3424.      will not be shown in the doors listings shown to users, and cannot be run
  3425.      manually. However, it is not mandatory that a door to be run as an
  3426.      autodoor be so marked.
  3427.  
  3428.  
  3429.  
  3430.                                   -48-
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.         The second entry is the #event which will activate the autodoor.  This
  3438.      would be
  3439.  
  3440.      #event all 1:00 autodoor quiet 1440 "" "Local Usenet" usenet
  3441.  
  3442.         This event is always active (note the duration of 1440), so whoever,
  3443.      or more accurately whatever, logs in using this account will always be
  3444.      thrust into the door named 'usenet'.  Note the use of double quotes
  3445.      around the name of the user who triggers this autodoor: they are
  3446.      MANDATORY.  They are there so  we may distinguish between the name of the
  3447.      user, which may have more than one word, and the name of the door entry,
  3448.      which is always one word.
  3449.  
  3450.      XX. External Message Editors
  3451.         Ambitious sysops may provide "external message editors" to their
  3452.      users.  An external message editor is just like the Sysop's Editor
  3453.      (Section XII), except they can be made available to the remote users,
  3454.      if the sysop is ready to do the legwork.  When Citadel-86 executes
  3455.      an external editor, it makes no attempt at redirecting the input from
  3456.      the keyboard to the modem, or the output from the screen to the modem.
  3457.  
  3458.      Instead, the sysop must either find an editor which will do such things,
  3459.      or find some program which will do so for them, such as Marshall Dudley's
  3460.      fine DOORWAY program (which, unfortunately, is shareware).
  3461.  
  3462.         Anyways, on to the gritty details.  The user interface to the external
  3463.      editors is analogous to that provided for the External Protocols of
  3464.      Section XV & XVII.  When faced with the "entry cmd: " prompt of the message
  3465.      editor, the users may select any external message editor simply by
  3466.      pressing the key assigned by the sysop.  For instance, if the Sysop
  3467.      has decided an external full screen editor should be accessed via the
  3468.      'F' key, the user need only type 'F' at the entry cmd: prompt in order
  3469.      to enter text via the full screen editor.  When the sysop adds external
  3470.      editors to the installation, they should remember to modify the help
  3471.      file EDIT.MNU to reflect the change.
  3472.  
  3473.         But how are external editors installed?  Again, analogous to the
  3474.      External Protocols, all external editors are listed in a separate file.
  3475.      The file is called EDITORS.SYS and should reside in your #ROOMAREA
  3476.      directory.  Each line in the file specifies an external editor.  The
  3477.      format of each line is
  3478.  
  3479.         <editor name> <command line>
  3480.  
  3481.         "Editor name" is the name to be echoed to the user when they select
  3482.      this editor, AND the first letter of this name is the selector letter.
  3483.      Additionally, this can only be one (1) word, unless you surround the
  3484.      name with quotes (").  So if you want your full screen external editor
  3485.      to just be FullScreen, then you could just have
  3486.  
  3487.         FullScreen ...
  3488.  
  3489.      but if you want it to be two words, you'd have to have
  3490.  
  3491.         "Full Screen" ...
  3492.  
  3493.  
  3494.  
  3495.  
  3496.                                   -49-
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  
  3503.      In both cases, the user would type 'F' to gain access to it.
  3504.  
  3505.         "Command line" is the command line to be used to run the editor.
  3506.      You may use the macros defined in the External Protocols section
  3507.      (XV & XVII) in order to convey important information to the editor, except
  3508.      for %g.  This includes the new %h parameter.  For instance, if you have
  3509.      found an editor (call it "outside") which will run off your COM port,
  3510.      with the arguments being the Com port, the baud, and the name of the file
  3511.      to edit, you might have
  3512.  
  3513.         "Full Screen" outside %c %a
  3514.  
  3515.         The name of the file to edit is automatically appended to the end of
  3516.      command line.
  3517.  
  3518.         You can NOT override any of the already existing message editor
  3519.      commands.  As of this writing, those are <A>bort, <C>ontinue, <Global
  3520.      replace, <R>eplace, <P>rint, <S>ave, <H>old, <I>nsert, <N>et, <W>ho else,
  3521.      and <O>utside Editor.
  3522.  
  3523.         This is definitely an advanced option, particularly if you are
  3524.      trying to run an editor using DOORWAY or similar program.  Approach
  3525.      with caution.
  3526.  
  3527.         Ease v1.5 will build the EDITORS.SYS file for you if you prefer to
  3528.      do things the easy way.
  3529.  
  3530.      Appendix A: File Formats
  3531.     This section covers the file formats used in the various files managed
  3532.      by Citadel-86.  While we do not ever recommend editing these files by
  3533.      hand, occasionally it can become useful or even necessary to edit some
  3534.      of these files.
  3535.  
  3536.      A.0 Glossary
  3537.     Here's a short glossary of terms.
  3538.  
  3539.      room slot number: The rooms in Citadel-86 are kept in a static-size file
  3540.      named CTDLROOM.SYS.  Each room in Citadel-86 occupies one "slot" in the
  3541.      file, numbered from 0 to MAXROOMS-1, inclusive.  When this term is used,
  3542.      we refer to the slot number the room occupies.
  3543.  
  3544.      A.1 Encrypted Files
  3545.     The following files are encrypted and may not be edited.
  3546.  
  3547.     CTDLTABL.SYS     CTDLMSG.SYS    CTDLROOM.SYS    CTDLLOG.SYS
  3548.         CTDLNET.SYS      Domain Mail Files       Route Mail Files
  3549.         CITADOOR.SYS     CTDLFLR.SYS             User Biographies
  3550.  
  3551.      A.2 Non-editable Files
  3552.     These files are difficult or impossible to edit in a credible manner,
  3553.      although they are not encrypted.
  3554.  
  3555.     *.VEX            VORTEX.SYS              VTXIND.SYS.
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.                                   -50-
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  
  3569.      A.3 NETMSG.$$$
  3570.     This file is generated for a short time during network sessions.
  3571.      Finding it on the system indicates the system crashed during a network
  3572.      session.  Don't worry about it.
  3573.  
  3574.      A.4 INCASE.NET
  3575.     This file is generated by Citadel-86 while rooms, etc are being received
  3576.      from some other system.  If during a network session the system should
  3577.      crash, when it comes back up it will search for this file, and if it finds
  3578.      this file it will use the information in it to try to recover what it can
  3579.      from other temporary net files so that data sent during the net session
  3580.      is not lost.
  3581.  
  3582.      A.5 CTDLLOCK.SYS
  3583.     This file is written to disk when the Sysop is using <O>utside commands
  3584.      to run some external program.  This file is written to prevent the sysop
  3585.      from trying to run Citadel-86 from within itself, since this can have
  3586.      extremely bad results.
  3587.  
  3588.      A.6 CTDLFWD.SYS -- Forwarding Addresses
  3589.     This file contains the addresses used for mail forwarding.  The
  3590.      ethical sysop will never fool with this file.  Each line of this file
  3591.      is a single record.  The format is
  3592.  
  3593.     <username><tab><target system><tab><name on target system>
  3594.  
  3595.      A.7 CTDLARCH.SYS -- Room Archival Information
  3596.         The names of the files used for room archival are kept in the text
  3597.      file CTDLARCH.SYS, residing in the #ROOMAREA directory.  CTDLARCH.SYS is
  3598.      generated and maintained by CTDL.EXE, and should not be disturbed while
  3599.      CTDL.EXE is in operation (i.e., through <O>utside commands).  When
  3600.      Citadel-86 is down, however, the Sysop may edit CTDLARCH.SYS to taste.
  3601.      Adding entries is ineffective; changing entries works.  Each line of
  3602.      the file constitutes an entry for some room.  The format is
  3603.  
  3604.         <room slot number> <file name>
  3605.  
  3606.      The room slot number should not be changed.  The filename, of course, may
  3607.      be changed.
  3608.  
  3609.         Do not delete entries from this file, either.
  3610.  
  3611.      A.8 CTDLINFO.SYS -- Room Information Information
  3612.     The data accessed via the <I>nformation command is stored in the file
  3613.      CTDLINFO.SYS, residing in the #ROOMAREA directory.  This is a straight
  3614.      text file composed of zero or more entries.  Each entry begins with the
  3615.      entry
  3616.  
  3617.     #room <roomname>
  3618.  
  3619.      It is followed by the text of the Information for the given room, followed
  3620.      by a "true" blank line.  That is, if this file is being directly edited for
  3621.      some reason, a blank line within the information text can be simulated by
  3622.      placing a space or blank on the line to appear blank within the information
  3623.      text.  But to end the entry, a blank line without a space is required.
  3624.  
  3625.  
  3626.  
  3627.  
  3628.                                   -51-
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.  
  3635.     This file should never be edited while the system is up.  The system
  3636.      should be taken down before any modifications are made to the system.
  3637.  
  3638.     Editing this file may be appropriate if the sysop desires Information
  3639.      to be available for the Lobby, Mail, or Aide rooms.
  3640.  
  3641.      A.9 CTDLMODR.SYS -- Room Moderators
  3642.     Room moderator information is kept in CTDLMODR.SYS, in the #ROOMAREA
  3643.      directory.  This is a text file, in which each line constitutes a record.
  3644.      The first field is the room slot this record refers to, while the second
  3645.      line refers to the name of the person moderating this room.
  3646.  
  3647.      A.10 CTDLDIR.SYS -- Directory Room Information
  3648.         The listing of directory rooms and their associated MS-DOS
  3649.      specifications is kept in a normal MS-DOS text file named CTDLDIR.SYS,
  3650.      which resides in the #ROOMAREA directory.  While Citadel-86 automatically
  3651.      maintains this file at all times, not requiring any Sysop interference,
  3652.      the inquisitive Sysop can manipulate this file.
  3653.  
  3654.         The contents of this file is as follows.
  3655.  
  3656.         <room #> <directory specification>
  3657.  
  3658.         The room # field should never be touched.  However, the second field
  3659.      can be changed when Citadel-86 is not up, thus changing the directory
  3660.      associated with the room specified by the room number.
  3661.  
  3662.         Really, though, there's not much reason to change this file manually.
  3663.  
  3664.      Appendix B: Contributors
  3665.         There have been a number of contributors to Citadel-86 over the years,
  3666.      and it's only appropriate to acknowledge such people.
  3667.  
  3668.         It's natural to begin by remembering the original author of Citadel-86,
  3669.      Cynbe ru Taren of Seattle, and the early contributors, such as David V.
  3670.      Mitchell and others we are not aware of.  They are the reason Citadel-86
  3671.      and its many children exist today.
  3672.  
  3673.         A partial list of others include the following:
  3674.  
  3675.         Hue, Sr. of SuperComp III: for general support, testing, suggestions,
  3676.      and motivation, not to mention providing access to the code!
  3677.  
  3678.         John L. Stanley: A great deal of early work with Hue, Jr., to get the
  3679.      bugs out of the early CP/M Citadel 2.10 code, and then the later
  3680.      development of most of the core concepts of C86Net.
  3681.  
  3682.         Jay Johnson, for Insert Paragraph and a great deal of general work
  3683.      and ideas, not to mentioned Citadel-68k.
  3684.  
  3685.         Dale Schumacher (Dalnefre') of Syntel for additions to the Configure
  3686.      program and fighting with me a lot.
  3687.  
  3688.  
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  
  3694.                                   -52-
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.         Paul Gontier of Kat's Alley for the video support code.
  3702.  
  3703.         Eric Brown of Primordial Ooze for the Zenith Z-100 modem code.
  3704.  
  3705.         Paul Gauthier of Cerebral Cortex for the Hot Helps code, USENET access
  3706.      gateway, OtherNet concept, and pushing Citadel-86 into implementing Anytime
  3707.      Netting, plus a host of minor suggestions.
  3708.  
  3709.         Gary Meadows of Asgard-86 for his Door Support code and other
  3710.      suggestions.
  3711.  
  3712.         Kip DeGraaf for taking care of the netmaps.
  3713.  
  3714.         SSR of Chaos II for forcing USR HST 9600 support into Citadel-86.
  3715.  
  3716.         Royce Howland of Edmonton for his CALLSTAT utility.
  3717.  
  3718.         BKB of Novu for several useful utilities.
  3719.  
  3720.         Fred Rose of House of Fred for another utility.
  3721.  
  3722.         Phluffy for general ideas and STROLL.
  3723.  
  3724.         Andy Rubin of Spies in the Wire for being the first network node
  3725.      outside of Minnesota.
  3726.  
  3727.         mary mary for her many ideas, unfailing support and editing these damn
  3728.      manuals!
  3729.  
  3730.         And, of course, the cast of thousands responsible for the ideas
  3731.      which have made Citadel-86 into what it is today.
  3732.  
  3733.                                 -- Hue, Jr.
  3734.  
  3735.  
  3736.  
  3737.  
  3738.  
  3739.  
  3740.  
  3741.  
  3742.  
  3743.  
  3744.  
  3745.  
  3746.  
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753.  
  3754.  
  3755.  
  3756.  
  3757.  
  3758.  
  3759.  
  3760.                                   -53-
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.  
  3770.